Good idea. I could store the units spawned by a certain spawn rule and then reduce the spawn chance for each such unit still alive.Can the base chance of a spawn be lowered as more of them propagate the map? That way if there are 20 units on the map already, the chances of another of that type spawning is say 30% less? Also, which units get the first crack at spawning on a tile? If bears are at the top of the list for example, that would seem to give them the best chance of spawning. If that is the case, then either the first unit in the queue must be randomized, or the most rare spawn be at the top of the queue.
The list order should not have a big impact as every single spawn is done independently at the moment so you can even have more than one unit spawn on the same plot in the same turn.