However, if you want only quasi-randomness, where I'm not sure what that means, you could perhaps include a counter that checks how often the same style is used and repeat the action if the styles are not used often enough.
Or you could limit the characters in a given range of characters that should be changed. Hm. So, please explain exactly what you expect from an "amount" of randomness that affects 30% or 80% of all the characters. How many changes should happen e.g. in a text with 100 characters? Should white space characters be involved as well?