I think the conversation is getting a bit confused. I think everyone wants to *use* heroes (as in, Devouring One, Yggdrasil, etc.). If I'm following what some people are saying, the matter of debate is whether we want to take certain hero units and modify their unit properties. In any case, I say we take it on a case by case basis. If someone wants to take Warbringer and turn it into "REAVER BOSS 1!" then we just have to see if anyone else is using warbringer, and if not then it should be fine. This is pretty much what the first post said anyway, I think.
For randomization, if I have to I'll make my own randomized unit choice and probably end up using at least two more locations to do so. However, I think the idea of the original post basically works fine:
Player 1 chooses a level, and then:
0 - A switch designating that player's level is activated
1 - Unit options for that level are created in mutual unit spawn area. (example: mine will be a mix of zerglings, zealots, medics, firebats, marines, and vultures)
2 - The unit options are junkyard dogged and then moved to the pads where players can choose them. (example, player can choose between zergling and marine)
3 - Civilians or some chooser are created for the players to decide which unit they want out of two random choices. (If the player commands at least one civilian, more units are moved to the pad, in case a level is supposed to have more than one choice.) (example: player chooses zergling; the civilian dies, and the next civilian is moved to make the next choice. New choices are firebat, medic. Player chooses medic, and nothing more is moved)
3b - Units are moved to the player's level, based on which switch is set.
4 - Once no more civs are present, any remaining units (in case not fullhouse) are killed to keep the map clean
5 - When the level is completed, any remaining units and civs are killed (in case someone held onto a civ)
6 - Rinse, lather, repeat.
If we were to use a system like this, the big questions would be a) how many options do we want for each level (is 2 enough?). But, if you didn't want random units for the player on that level, then all you do is give players units at the spawn location.
None.