Moving to RandomNumberGenerator as CryptRandom is not supported in Mono

#847 
What is the reason for caching the generator. Is there a significant cost to create the generator?