Random replace objects with random times? fixed location

What I’m trying to achieve is have a library of 2-3 objects and they keep replacing each other at random, with random amount of time each stays.

something like maybe have a null - which I can place at point i want to spawn objects at, and then attach 2-3 objects to that which it keeps calling with random amount of timeframes.?

Please help out, totally new to unity’s coding rn.

next part-
can i also put different random transitions when one object replaces/transformed in other?

My guess would be that you need 2 functions.

One would be RandTime() to choose a random ammount of seconds to wait.
Then you need RandObject() to choose a random object to instantiate

Here is approximatively what it would look like :

Vector 3 spawnPoint = new Vector3 ([whatever location you like])
GameObject[] customObjects = new GameObject[3]

customObjects[0] = ... (whatever you like);
customObjects[1] = ... (whatever you like);
customObjects[2] = ... (whatever you like);

GameObject currentInstantiatedObject;

int RandTime() {
     int timeToWait = Random.Range(1,5);
     return timeToWait;

GameObject RandObject(GameObject[]  objects) {
    int whichObjectToReturn = Random.Range(-1, objects.Length - 1);
    return objects[whichObjectToReturn];

void Start() {
        currentInstantiatedObject = (GameObject) Instantiate(RandObject(customObjects), spawnPoint);

void checkNewObject()
        GameObject newObject = Invoke("RandObject", RandTime());
        if (newObject != currentInstantiatedObject)
             Destroy(currentInstantiedObject, 0f);
             // you can also put an animation here if you want a transition
             currentInstantiatedObject = (GameObject) Instantiate (newObject, spawnPoint);

Update() {

I’m sure the syntax is not exactly correct, but these are the steps you should be taking logically speaking.