On the surface this seems the same as the "weighted random selection" problem.
Algorithm 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%.