RemoveAt() doesn't remove instantiated objects. Here's the code

var cube1:GameObject;
var cube2:GameObject;
var clone:GameObject;
var obj:GameObject;
var spawnPoints:GameObject;
function Start () {
spawnPoints=GameObject.FindGameObjectsWithTag(“spawn”);
yield WaitForSeconds(2);
Call(1);

}

function Update () {

}
function Call(count:int){
var randomPosition=Random.Range(0,spawnPoints.Length);
var randomObj=Random.Range(0,obj.length);
Debug.Log(randomPosition);
var i:int;
for(i=0;i<count;i++){
yield WaitForSeconds(1);
clone=Instantiate(obj[randomObj],spawnPoints[randomPosition].transform.position,Quaternion.Euler(0,0,0));
clone.name="Object";
obj.RemoveAt(randomObj);
}
//Destroy(obj[randomObj]);


}

Replace this line:

var obj:GameObject[];

with

var obj:System.Collections.Generic.List.<GameObject>;

Also replace this line:

var randomObj=Random.Range(0,obj.length);

with

var randomObj=Random.Range(0,obj.Count);