My Random SetActive Often times doesn't work

So my problem is that when GameObject Collide with Another GamObject (that teleport you back and inactive a random GameObject then active a random GameObject) It works but, it often doesn’t active and inactive the GameObject here’s my code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RandomGen : MonoBehaviour
{
    public GameObject insrPlayer;
    public int rndNum;
    public int rndNumb1;
    public GameObject[] multiSection;
    
    void OnCollisionEnter ( Collision collision )
    {
        if( collision.gameObject.CompareTag("Player") )
        {
            insrPlayer.transform.position = new Vector3 (0f, 2.5f, 0f);
        }
    }
    void OnCollisionExit ( Collision collision )
    {
        if( collision.gameObject.CompareTag("Player") )
        {
            rndNum = Random.Range(0,3);
            multiSection[rndNumb1].SetActive(false);
            multiSection[rndNum].SetActive(true);
        } 
    }
}

ok nvm i kinda solved it for SetActive(false) i changed it to individual GameObject object0; to GameObject object the amount i want. idk why using Array for SetActive(false) sometimes doesn’t work out.