Fiche Random() : Générer de l’aléatoire
Introduction
En C#, on peut générer des nombres aléatoires grâce à la classe Random.
C’est utile par exemple pour simuler un dé, choisir un élément au hasard, ou créer un petit jeu.
Créer un générateur
// Création d’un générateur aléatoire
Random aleatoire = new Random();
Générer des entiers
Exemple 1 : un entier positif
int nombre = aleatoire.Next();
Console.WriteLine(nombre); // par exemple 135792468
Exemple 2 : un entier entre 0 et un maximum
int nombre = aleatoire.Next(10);
Console.WriteLine(nombre); // un nombre entre 0 et 9
Exemple 3 : un entier entre deux bornes
int nombre = aleatoire.Next(1, 7);
Console.WriteLine(nombre); // un nombre entre 1 et 6
⚠️ Attention : la borne du haut est exclue.
IciNext(1, 7)donne 1,2,3,4,5 ou 6 (jamais 7).
Générer des nombres réels
double reel = aleatoire.NextDouble();
Console.WriteLine(reel); // un nombre entre 0.0 et 1.0
Exemples pratiques
Lancer de dé
Random aleatoire = new Random();
int de = aleatoire.Next(1, 7);
Console.WriteLine("Résultat du dé : " + de);
Tirer pile ou face
Random aleatoire = new Random();
int tirage = aleatoire.Next(2); // 0 ou 1
if (tirage == 0)
Console.WriteLine("Pile");
else
Console.WriteLine("Face");
Exercices
Exercice : Loterie simple
Écrire un programme qui tire 6 numéros distincts entre 1 et 49, comme dans un tirage de loterie.
Solution
static void Main()
{
int maxShoots = 6; // nombre de numéros à tirer
int maxLotoSupp = 50; // nombre max de numéros (1 à 49)
int randomValue; // valeur aléatoire
Random oRand = new Random();
Console.WriteLine("Numéros tirés :");
for (int i = 0; i < maxShoots; i++)
{
randomValue = oRand.Next(1, 50); // entre 1 et 49
Console.Write(randomValue + " ");
}
Console.ReadKey();
}
Remarque
Avec ce programme, il est possible qu’un même numéro sorte plusieurs fois (exemple : 7 12 7 34 49 12). Pour éviter les doublons, il faudrait stocker les numéros déjà tirés et vérifier avant d’en ajouter un nouveau. 👉 Cela sera possible plus tard quand on aura vu les tableaux ou les listes.
À retenir
new Random()crée un générateur.Next()donne un entier aléatoire.Next(max)donne un entier entre 0 et max - 1.Next(min, max)donne un entier entre min et max - 1.NextDouble()donne un nombre réel entre 0.0 et 1.0.
Pour aller plus loin
- Documentation Microsoft sur la classe random en C#
Avec des exemples