.NET Random Numbers

Posted by Joe Enos on April 24, 2021 · 1 min read

.NET gives you two ways to generate random numbers - a fast but insecure way, and a cryptographically pseudorandom way which is safe to use for cryptography. Both are easy to use.

For non-secure purposes, create a single instance of Random - this can be a singleton or a static field - just don't create a new one every time you need it, because you might end up with dupes that way. Random is also not thread-safe, so make sure you access it in a thread-safe way if there's the possibility of multiple threads accessing it.

View code on GitHub