La solution la plus "optimisée" est la suivante.
Concrètement tu fais RandInt(1,100 pour avoir un nombre entre 1 et 100 inclus. On va dire que le 10-money correspond à la place de 1 à 50 inclus, le 60-money, de 51 à 70 inclus, etc.... jusqu'à 100. Tu définis une liste (L2, par exemple) avec pour chaque bonus la valeur maximale permettant d'obtenir le bonus. Avec ton exemple on pourrait avoir L2 = {50, 70, 85, 94, 99, 100}.
Après ton tirage au sort, il faut parcourir la liste du début à la fin, et regarder si la valeur tirée au sort est inférieure ou égale à la valeur indiquée.
Exemple : on tire au sort la valeur 84.
On parcourt la liste : tout d'abord, on a 50. 84 > 50, donc on n'a pas le "10 money".
Ensuite, on a 70. 84 > 70, donc on n'a pas le "50 money".
Ensuite, on a 85. 84 ≤ 85, donc on a le "100 money".
J'espère que c'était assez clair.

Pour l'histoire du "money-plus", il suffit de stocker dans une liste un compteur, le nombre de fois qu'en en a gagné. Au début on vérifie si ce compteur est au-dessus de 5, et on donne le bonus ou pas en fonction de ça lorsque le tirage est effectué. Tu peux le remplacer par ce qui te plaît, dans ce cas.