Why is the System.Random class not static?
When you use the System.Random class, you must make an instance of it. Why is it not static ? Because if I want a random number between 0 and 9, I can use the static method , System.Random.Next(int, int) : int ourRandomNumber = Random.Next(0,9); So why isn't the class just static ? BrokenGlass You wouldn't be able to use different seeds if it were static - the Random instance keeps track of that state. By default Random uses the current time as seed, but re-using a particular seed (i.e. new Random(42) ) allows you to exactly repeat the sequence of random numbers - they will always be the same