Firing a curtain of bullets

I'm making a 2D shooter and wanted to know how to fire a curtain of bullets like in a bullet hell game from a single object. I'm trying to figure out how to alter a normal firing code to spread out in a fan shaped or random pattern if possible.

Edit: Code for firing //Fire rate of shots(Every # seconds, fire 1 shot) var fireRate: float =1.0; //Time to start shooting private var nextFire: float = 0.0;

function Awake()
{
    // set our starting x position
    originalX = transform.position.x;   
}
function Update(){
    //Move forward
    //transform.position.x += 1 * speed * Time.deltaTime;
    // if the user just pressed the "Shoot" button down (edit->project settings->input) & if the time since the game started is greater than the next fire time
    //As long as the time the game starts and the fire rate = nextFire and is less the Time.time, it'll fire.

    if(Input.GetButton("Shoot")&&Time.time > nextFire)
{
    audio.Play();
        // create a shot, to the right of us (so it doesn't clip into our collision), with 90 degrees rotation
    nextFire = Time.time + fireRate;
        //Instantiate(Shot, transform.position + Vector3.right*2, Quaternion.Euler(0, 0, 90));

    Fire();
    }

var BulletPrefab: GameObject;
var bulletSpeed = 100;

function Fire(){
  var rotation : Quaternion = Quaternion.identity;
  rotation.eulerAngles = Random.insideUnitSphere;
  var bullet : GameObject;
  bullet = Instantiate(BulletPrefab,transform.position,rotation);
  bullet.rigidbody.velocity = bullet.transform.forward*bulletSpeed;
}

If you are using particles for bullets you can use the random velocity setting.

If you are using rigid bodies for bullets you can use Random.insideUnitSphere to get a random direction for it to travel in.

e.g.

var BulletPrefab: GameObject;
var bulletSpeed = 100;

function Fire(){
  var rotation : Quaternion = Quaternion.identity;
  rotation.eulerAngles = Random.insideUnitSphere;
  var bullet : GameObject;
  bullet = Instantiate(BulletPrefab,transform.position,rotation);
  bullet.rigidbody.velocity = bullet.transform.forward*bulletSpeed;
}

If you wanted the bullets to move in a pattern then you can set the angle using some kind of math equation. Even very simple equations can result in interesting looking patterns. e.g. if you increment the y-rotation of the bullet fired by 10 degrees every frame they'll fan out like a spiral. If you then have a second set of bullets with their y-rotation incrementing in the opposite direction you'll get a double spiral that crosses over each other.

EDIT:

Changed rigid body to game object.

E.g. Maths:

yRotation : float = 0;

function IncrementAngle(){
   yRotation += 5;
   if(yRotation>359){
      yRotation = -359;
   }
}