Create a Random Number Generator
By Stephen Armstrong // December 18th, 2019
Learn how to add a random number generator to your game.
This tutorial will help you create a random number generator.
Random number generators are an easy way to add greater variety to your game.
As this generator uses pure C# code, it can be used in any game engine or framework that uses C# (such as MonoGame and Unity).
Create a RandomNumber class
Right click on your project in Solution Explorer and select > .
In the Add New Item window, select Class and enter a Name. In this example we call it RandomNumber.cs. Click Add when finished.
RandomNumber.cs should automatically open, and you'll see the following:
Feel free to delete this default code, and replace it with the following:
- using System;
- class RandomNumber
- {
-
- static Random rnd = new Random();
- public static int RandomInt(int min, int max)
- {
-
- // Switch around numbers if min is higher than max. The game will crash if min is higher than max.
- if (max< min)
- {
-
- return rnd.Next(max, min);
- }
- return rnd.Next(min, max);
- }
- }
As a public and static method, RandomNumber.RandomInt() can be directly called by any part of your game.
Using the RandomNumber class
To generate a random number between a set minimum and maximum value, all you have to do is call RandomNumber.RandomInt() with a minimum and maximum value.
Open Game1.cs and add the following code to the Update() cycle:
- // Set the minimum and maximum values
- int minimum = 0;
- int maximum = 1000;
- // Get the random number
- int randomNumber = RandomNumber.RandomInt(minimum, maximum);
- System.Console.WriteLine("A random number between {0} and {1}: {2}", minimum, maximum, randomNumber);
If you run the game now and check the Output, you will see a constant generation of random numbers between 0 and 1000.
Get random values from arrays
Sometimes you may find it better (or necessary) to choose a random number from pre-selected values.
The following code is an example of building a sentence using string arrays:
- // An array of names
- string[] names = new string[] {"James", "John", "David", "Murray", "Ibrahim", "Dae-Hyun", "Esteban", "Connor", "Luke", "Cain", "Francois", "Herman", "Joseph", "Ivan", "Lloyd", "Michael", "Diego" };
- // An array of greetings
- string[] greetings= new string[] { "Hello", "Goodbye", "Good morning", "Good afternoon", "Good night", "Please", "Thank you", "Sorry", "Excuse me" };
- // Get a random name
- string randomName = names[RandomNumber.RandomInt(0, names.Length)];
- // Get a random greeting
- string randomGreeting = greetings[RandomNumber.RandomInt(0, greetings.Length)];
- // Output a sentence based on a randomly-selected name and greeting
- System.Console.WriteLine("{0} says \"{1}\"", randomName, randomGreeting);
If you run the game now and check the Output, you will see a constant generation of random sentences.
Please note
One final thing to note, is that while this random number generator is good enough for use in a video game, the resulting number is not a “real” random number (it is called a pseudo-random number).
You should not use this random number generator if you need a completely random number (for generating passwords or other security/cryptography purposes).