Hello, what you want to do is create a Unit-Type Array variable to store all of your buildings.
You set these variables at the start of the game:
-
Events
-

Time - Elapsed game time is 0.00 seconds
-
Conditions
-
Actions
-

Set Variable Tower_Type[1] = Guard Tower
-

Set Variable Tower_Type[2] = Arcane Tower
-

// repeat this process for all 200 towers
Then you can reference them at random by "rolling the dice":
-
Actions
-

Set Variable Random_Number = (Random integer number between 1 and 200)
-

Set Variable Random_Tower_Type = Tower_Type[Random_Number]
Random_Number is an Integer variable. Random_Tower_Type is a Unit-Type variable like Tower_Type, except it's NOT an Array.
Your number range can be used to dictate the grades of towers, for example 1 -> 66 can be low, 67 -> 132 can be mid, and 133+ can be high.
OR, and this may be better since it's easier to add new towers in the future, you would have three Unit-Type array variables:
-
Actions
-

Set Variable Tower_Type_Low[1] = Guard Tower
-

// repeat for all low towers
-

Set Variable Tower_Type_Mid[1] = Arcane Tower
-

// repeat for all mid towers
-

Set Variable Tower_Type_High[1] = Cannon Tower
-

// repeat for all high towers
The logic remains mostly the same, except that low would go from 1 -> 66, mid would go from 1 -> 66, and high would go from 1 -> 66. Then when you generate a random number you would set your range to be between 1 and 66 instead of 1 and 200.
Now the somewhat advanced part would be getting 3 of each Tower_Type at random
WITHOUT repeats. This can be done using Arrays and some clever math that I'm too lazy to write here. See Maker's post near the bottom:
Is there a way to make a random number system that avoids certain numbers? So if it picks three integers, it won't pick the same integer number twice.
www.hiveworkshop.com
After that, I'm not too sure what you'd do to actually add these Tower_Types to your Builder. I suppose using the Limit Construction action would allow you to control what can and can't be built. You'd probably have to add all 200 towers to your Builder in the Object Editor by default and then Disable all of them at the start of the game using this:
-
Player Group - Pick every player in (All players) and do (Actions)
-

Loop - Actions
-


For each (Integer A) from 1 to 200, do (Actions)
-



Loop - Actions
-




Player - Make Tower_Type[(Integer A)] Unavailable for training/construction by (Picked player)
Then you can make them Available again during the random Tower_Type process that I talked about before.