On the surface this seems the same as the "weighted random selection" problem.
Algorithm for determining random eventsAlgorithm for determining random events
Allocate relative probabilities to each event, add them up, then pick a random number within that range to decide which event you want.
Even if you prefer to use percentages - which is the same system, just scaled to 100 - you're overestimating how hard it is to add stuff. If you have 100% and then add 20% in an expansion, just divide all the values by (120/100) and you're back down to a total of 100%.