I'm ok with hiding `char` details, but we should probably document this in some fashion. In theory if you build a string of random `char`s, then it's not necessarily random as it may have a likelihood of preferring one thing over another. I'm certainly no crypto expert though...

Perhaps just document exactly what's happening to hopefully cover our bases? This goes back to the whole "crypto in rust is bad" but we still want basic functionality. Let's just stick with a comment for now?