Array picks same object

I made a script where on start, all the game objects in the array are disabled, a coroutine starts, one object from the array is enabled and then repeats. Problem is that the same object keeps getting enabled. Anyway to fix this?

 GameObject[] Enemy;
    GameObject currentEnemy;
    int index;

    private void Start()
    {
        Enemy = GameObject.FindGameObjectsWithTag("Enemy");
        
        foreach(GameObject obj in Enemy)
        {
            obj.SetActive(false);
        }

        StartCoroutine(Spawn());
      
    }

    IEnumerator Spawn()
    {
        yield return new WaitForSeconds(3);
        index = Random.Range(0, Enemy.Length);
        currentEnemy = Enemy[index];
        print(currentEnemy.name);
        currentEnemy.SetActive(true);
        yield return new WaitForSeconds(1);
        Start();
    }

it’s either bad luck on the random number (it’s possible to return the same number 10 times in a row even though the chance is tiny), or the array only contains one element.