not choosing the selected gameobject from a searched array with random range function

hi guys ,maybe it be a simple question but beleave that ive searched more than jundred pages but still havent fined a solution for thhis simple quet
Assume that thers a card game and you drop a card from an array on the board
i pick the card with Random.Range function from the cards array but the question that exist is that i dont want to drop another card in the same place the last cards were droppen untill the whole places are full
this is my code but its Incomplete , would anyone help me plz
function pirateInstantiate()
{

var cardInt : int = Random.Range(0,6);
var cardString : String  = cardStringArray[cardInt];
cardStringArray.RemoveAt (cardInt);
var cardePlacement = GameObject.FindcardString);
cardVector = cardPlacement.transform.position ;
Instantiate(cardArray[Random.Range(0,2)] ,cardVector , transform.rotation);

}

I’m having a hard time understanding your specific problem. But when I have this type of problem, I usually just use the brute force approach of generating more random numbers until I find one that fits. Let’s say there was a string array where initially all the positions were null. And I wanted code to randomly fill the array with strings. Even if many of the slots were full, I could find an open slot using something like (untested):

int i;
do {
    i = Random.Range(0, arst.Length);
} while (arst *!= null);*

The only issue is that you have to be cautious with the conditional. If it cannot be met, the whole program crashes. Sometimes I’ll put in a stop gap counter that assures that the loop will exit.
Another way to deal with this kind of situation is to use the initial Random.Range() to find a place. Then walk the places in order until you find an empty slot. This produces a less random result, but good enough for many applications.