On the surface this seems the same as the "weighted random selection" problem.

http://gamedev.stackexchange.com/questions/6043/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%.