Genera un numero casuale tra due numeri in JavaScript

Moataz Farid 12 ottobre 2023
  1. Genera un numero casuale compreso tra 1 e un valore definito dall’utente in JavaScript
  2. Genera un numero casuale tra due numeri in JavaScript
Genera un numero casuale tra due numeri in JavaScript

Questo tutorial imparerà come generare un numero casuale tra due numeri in JavaScript. Useremo il metodo Math.random() che genera un numero mobile casuale compreso tra 0.0 e 0.999.

Genera un numero casuale compreso tra 1 e un valore definito dall’utente in JavaScript

Possiamo generare un numero casuale in JavaScript utilizzando un generatore di numeri casuali - Math.random(), moltiplicando il numero float generato con il numero massimo che vogliamo generare. Math.random()* max genera un numero casuale compreso tra 0 e max.

function generateRandom(max) {
  return Math.random() * max;
}

console.log('1st try: ' + generateRandom(5));
console.log('2nd try: ' + generateRandom(5));
console.log('3rd try: ' + generateRandom(5));
console.log('4th try: ' + generateRandom(5));

Produzione:

1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417

Se vogliamo ottenere solo il risultato in formato intero, possiamo usare Math.floor(), questo metodo restituisce il numero intero più grande minore o uguale al numero di input.

console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));

Produzione:

1
1
1
1

Usando il metodo Math.floor() possiamo ottenere i nostri numeri interi generati casualmente,

function generateRandomInt(max) {
  return Math.floor(Math.random() * max);
}

console.log('1st Integer try: ' + generateRandomInt(9));
console.log('2nd Integer try: ' + generateRandomInt(9));
console.log('3rd Integer try: ' + generateRandomInt(9));
console.log('4th Integer try: ' + generateRandomInt(9));

Produzione:

1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0

Genera un numero casuale tra due numeri in JavaScript

Se vogliamo anche avere un valore minimo definito dall’utente, dobbiamo cambiare l’equazione di Math.random() * max in Math.random() * (max-min)) +min. Usando questa equazione, il valore restituito è un numero casuale compreso tra min e max.

function generateRandomInt(min, max) {
  return Math.floor((Math.random() * (max - min)) + min);
}

console.log('1st min and max try: ' + generateRandomInt(2, 9));
console.log('2nd min and max try: ' + generateRandomInt(2, 9));
console.log('3rd min and max try: ' + generateRandomInt(2, 9));
console.log('4th min and max try: ' + generateRandomInt(2, 9));

Produzione:

1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3

Nel caso in cui siamo interessati ad includere il valore max nello scope del nostro generatore casuale, dobbiamo cambiare l’equazione in (Math.random() * (max+1 - min)) +min. L’aggiunta di 1 a max-min includerà il massimo nell’intervallo e Math.floor() garantirà sempre che questo valore non sia superiore al max.

function generateRandomInt(min, max) {
  return Math.floor((Math.random() * (max + 1 - min)) + min);
}

console.log('1st min and max included try: ' + generateRandomInt(2, 9));
console.log('2nd min and max included try: ' + generateRandomInt(2, 9));
console.log('3rd min and max included try: ' + generateRandomInt(2, 9));
console.log('4th min and max included try: ' + generateRandomInt(2, 9));

Produzione:

1st min and max included try: 3
2nd min and max included try: 7
3rd min and max included try: 9
4th min and max included try: 6

Articolo correlato - JavaScript Number