Random Delay time

I'm trying to set up some falling objects in a 2d view, right now they fall and respawn fine, but I'm trying to get a few 'special' ones to fall after a random delay between 5-20 seconds each. How would I go about achieving this? I know how to use the Random.Range, but how would I apply this to a delay timer?

This is my delay code:

var objectSpeed: int;

var delay = .5;
var timer = 0.0;

function Update () {

timer += Time.deltaTime;

if (timer >= delay){

amtToMove = objectSpeed * Time.deltaTime;

transform.Translate(Vector3.down * amtToMove);
//timer = 0.0; 

}

Any help would be appreciated.

You can simply use yield structure before respawning :

// before respawning do this :
yield WaitForSeconds(Random.Range(5,20));
//respawning

var objectSpeed: int;
var minWait = 5.0;
var maxWait = 20.0;

function Start () {
    yield WaitForSeconds(Random.Range(minWait, maxWait));

    while (true) {
        transform.Translate(-Vector3.up * objectSpeed * Time.deltaTime);
        yield;
    }
}

Note that Vector3.down is undocumented/deprecated; you should use -Vector3.up instead.