PROBLEM SOLVED! How i can spawning objects random spawning Points?

Now this code working only with two objects. Why?
I want created 3 levels.

Level 1 - 2 objects
Level 2 - 3 objects
Level 3 - 5 objects

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

public class GSpawners : MonoBehaviour
{

    public Transform[] SpawnerPoints;
    public List<GameObject> SpawnerObjects;
    public bool[] spotUsed;

  
    void Awake()
    {
        Spawner();

    }

    public void Spawner()
    {
       // var rnd = Random.Range(0, SpawnerObjects.Count);
        var bools = Random.Range(0, spotUsed.Length);

        int spawnPointIndex = Random.Range(0, SpawnerPoints.Length);
        int spawnObjectsIndex = Random.Range(0, SpawnerObjects.Count);

        //while (spotUsed[spawnPointIndex] == true)
        //{
        //    spawnPointIndex = Random.Range(0, SpawnerPoints.Length);

        //}

        for (int P = 0; P < bools; P++)
        {

            Instantiate(SpawnerObjects[spawnObjectsIndex], SpawnerPoints[spawnPointIndex].position, SpawnerPoints[spawnPointIndex].rotation);
            spawnObjectsIndex++;
            SpawnerObjects.RemoveAt(spawnObjectsIndex);
            spotUsed[spawnPointIndex] = true;
           
        }
       
    
    }
}

Have you try to set break points and see how the code run?
Sometime running the code step by step in VS to find the issue is faster than asking people on a forum.

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

    public class GSpawners : MonoBehaviour
    {

        public Transform[] SpawnerPoints;
        public List<GameObject> SpawnerObjects;
        public bool[] spotUsed;

  
        void Awake()
        {
            Spawner();

        }

        public void Spawner()
        {
           // var rnd = Random.Range(0, SpawnerObjects.Count);
            var bools = Random.Range(0, spotUsed.Length);

            int spawnPointIndex = Random.Range(0, SpawnerPoints.Length);
            int spawnObjectsIndex = Random.Range(0, SpawnerObjects.Count);

        while (spotUsed[spawnPointIndex] == true) // Why this not check all spots? 
        {
            spawnPointIndex = Random.Range(0, SpawnerPoints.Length);

        }


                Instantiate(SpawnerObjects[spawnObjectsIndex], SpawnerPoints[spawnPointIndex].position, SpawnerPoints[spawnPointIndex].rotation);
                spawnObjectsIndex++;
                SpawnerObjects.RemoveAt(spawnObjectsIndex);
                spotUsed[spawnPointIndex] = true;
               
        }
    }

Every time when spawning bool list object = true.
Now working only with two objects.
if i try spawning over 2 objects only 2 bools is = true.

This code is working guys.