Here is a topic with a way to do weighted random:
http://www.scirra.com/forum/weighted-probabilities_topic48421.html
With that instead of doing this:
a7 b2 c1 d0 e0
You could do this and end up with about the same probabilities but give d and e a slight chance of happening.
a700 b200 c100 d10 e1 total=1011
For leveling up just add to the weights.
You could do it linearly.
Like add 1 to a, 2 to b, 3 to c...
After 100 level ups the weights would be:
a800 b400 c400 d410 e501
You could also do it quadratically (x^2)
Add 1 to a, 4 to b, 9 to c, 16 to d...
After 100 level ups the weights would be:
a800 b600 c1000 d1610 e2501