How to set a random GameObject with tag active? (C#)

Hello, I’m creating a game based on the “Roll a Ball” tutorial and I want to make something like that:
There are 5 coins on the map and I want Unity to choose one of them to be active (They’re deactivated on start, of course). When we pick this up, public gameobject “pick” gets active (It’s like the coin, but it’s tag is different and it’s floating at our head) and we have to touch the gameobject with tag “basket” and then, the “pick” gameobject gets inactive, a random coin gets active and so on.
I was trying to do something like that (It’s in the player’s script):

        public GameObject pick;
        public GameObject basket;
        
        ...
        
         private void OnTriggerEnter(Collider other)
        {
    
        if (other.gameObject.CompareTag("coin"))
        {
        other.gameObject.SetActive(false);
        pick.SetActive(true);
        basket.SetActive(true);
        }
    
        if (other.GameObject.CompareTag("basket"))
    {
        other.gameObject.SetActive(false);
     
        }
}

I want you to edit this code to set one random coin active every time I start the game and every time I touch the active basket.

Coins tag: “coin”
Basket tag: “basket”
Player tag: “Player”
Coin floating at our head tag: “pick”.

I was trying to use some “random” commands but it didn’t work, so please, help me.

you’ll need to add an array that holds all the coins

something like

public GameObject coinHolder; // this is the symbol for arrays

then in your editor you’ll state how many are in this array and it will begin numbering at 0

then you’ll have to go back and do your random.range code in reference to that array.