Random Spawning Array lengthen

Im trying to make a spawner that will load multiple versions of my prefabs according to a number associated on a different script

spawner:

// Define Prefab Array
		PrefabArr = Resources.LoadAll<GameObject>("Prefabs");
		// get random prefab
		int randomSpwn = Random.Range(0, PrefabArr.Length);
		//instantiate Prefab
		Instantiate(PrefabArr[randomSpwn], Spawner.transform.position, Quaternion.identity);

I want to reach out to this script (PieceScore.CS) and grab this variable

                public int DropRate = 10;

What I want to accomplish is making the Array that loads all the prefabs look to that script for that variable first and then load as many versions of that prefab as that number. So if I had say 3 pieces with different numbers:

A = 10
B = 5
C = 3

My array would look like this:

AAAAAAAAAABBBBBCCC

Currently my code looks like this:

    #region Spawn Controllers
    	//Spawn Controller
    	void SpawnStart() {
    		// Define Prefab Array
    		PrefabArr = Resources.LoadAll<GameObject>("Prefabs");
    		// get random prefab
    		int randomSpwn = Random.Range(0, PrefabArr.Length);
    		//instantiate Prefab
    		Instantiate(PrefabArr[randomSpwn], Spawner.transform.position, Quaternion.identity);
    	}
    
    	//Start Game Spawner Coroutine
    	IEnumerator StartGame() {
    		for(int i=0; i<rows; i++) {  
    			SpawnStart();
    			SpawnTracker output = FindObjectOfType<SpawnTracker>();
    			output.spawnID = Spawner;
    			yield return new WaitForSeconds(fSpawnDelay);
    		}
    	}
    	#endregion

Looking for an idea on how to do it.

You can’t resize an array. Not easily, anyway. You might find it easier to use another collection, such as a List, which resizes automatically as you add more elements.

//look up prefabs, as before
PrefabArr = Resources.LoadAll<GameObject>("Prefabs");

//create empty list to hold our results
List<GameObject> spawns = new List<GameObject>();

//populate the list
foreach (var prefab in PrefabArr) {
	//decide how many of each prefab to add to the list
	//for demo purposes, let's just make it random
	int count = Random.Range(1, 10);

	//add the spawn point 'count' times
	for (int i=0; i<count; i++) {
		spawns.Add(prefab);
	}
}

After that, you can access spawns almost exactly as you would for an array.

var spawnPoint = spawns[0]; //get first spawn point

var numSpawns = spawns.Count; //get length of list