Comment générer un nombre aléatoire (random) en Java compris entre deux chiffres ?

Générer un nombre aléatoire est une fonctionnalité souvent utilisée en développement. En Java, il existe la méthode Math.Random().

Générer un nombre aléatoire est une fonctionnalité souvent utilisée en développement. En Java, il existe la méthode Math.Random() qui génère un nombre aléatoire compris entre 0 et 1, mais il n'est pas possible de changer les limites de ce nombre (voir notre astuce connexe pour arrondir un nombre à n décimales en Java).

Avec un calcul mathématique, on peut cependant obtenir un nombre aléatoire compris dans les limites que l'on souhaite. La première opération consiste à multiplier le nombre aléatoire par la différence entre le nombre maximum et le nombre minimum (ex : 10-5=5).

Math.random() * ( Max - Min )

Avec cette opération, on obtiendra un nombre compris entre 0 et la valeur de l'ampleur. Si on y ajoute le nombre minimum, on obtient un nombre aléatoire compris entre la limite inférieure et la limite supérieure.

Min + (Math.random() * (Max - Min))

La limite supérieure n'est cependant pas comprise dans l'intervalle. Pour l'inclure, la solution la plus simple consiste à ajouter 1, puis à enlever la partie décimale en convertissant le nombre en entier. La formule qui en résulte est la suivante :

int nombreAleatoire = Min + (int)(Math.random() * ((Max - Min) + 1));

La méthode nextInt() de la classe Random permet de générer un entier aléatoire compris entre 0 inclus et l'entier passé en paramètre exclus. En ajoutant 1 et en enlevant le minimum dans l'entier en paramètre, puis en ajoutant le nombre minimum au résultat, on arrive à obtenir un nombre aléatoire compris entre les deux valeurs:

<p>Random rand = new Random(); int nombreAleatoire = rand.nextInt(max - min + 1) + min;</p>

Java en pratique :

Java