Générer des nombres entiers aléatoires

On génère des nombres aléatoires avec Math.random(). Le problème est que cette méthode retourne un nombre à virgule flottante dans l'intervalle [0, 1[, alors qu'on est le plus souvent à la recherche de nombres entiers.

Le code suivant montre étape par étape comment obtenir un nombre entier aléatoire dans un intervalle de 1 à 100 :

let rand = Math.random();
console.log(rand);             // 0 à 0.999999...

let nombre = rand * 100;
console.log(nombre);           // 0 à 99.999999...

// la méthode Math.ceil(), pour "ceiling" (plafond), arrondi le nombre
// vers le haut
nombre = Math.ceil(nombre);
console.log(nombre);           // 1 à 100

On a donc :

// génère un nombre entier aléatoire dans un intervalle de 1 à 100
let nombre = Math.ceil( Math.random() * 100 );

Certaines personne ont l'habitude d'utiliser Math.floor() pour arrondir vers le bas. Dans ce cas il ne faut pas oublier d'additionner 1 :

// génère un nombre entier aléatoire dans un intervalle de 0 à 99
nombre = Math.floor( Math.random() * 100 );

// génère un nombre entier aléatoire dans un intervalle de 1 à 100
nombre = Math.floor( Math.random() * 100 + 1 );