Cómo generar un número aleatorio entre dos números en JavaScript
- Generar un número aleatorio entre 1 y el valor definido por el usuario en JavaScript
- Generar un número aleatorio entre dos números en JavaScript
Este tutorial aprenderá a generar un número aleatorio entre dos números en JavaScript. Usaremos el método Math.random()
que genera un número flotante aleatorio entre 0.0
y 0.999
.
Generar un número aleatorio entre 1 y el valor definido por el usuario en JavaScript
Podemos generar un número aleatorio en JavaScript usando un generador de números aleatorios - Math.random()
, multiplicando el número flotante generado por el número máximo que queremos generar. Math.random()* max
genera un número aleatorio entre 0 y 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));
Resultado:
1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417
Si queremos obtener sólo el resultado en formato de número entero, podemos usar Math.floor()
, este método devuelve el mayor número entero menor o igual que el número de entrada.
console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));
Resultado:
1
1
1
1
Usando el método Math.floor()
podemos obtener nuestros números enteros generados aleatoriamente,
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));
Resultado:
1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0
Generar un número aleatorio entre dos números en JavaScript
Si también queremos tener un valor mínimo definido por el usuario, necesitamos cambiar la ecuación de Math.random() * max
a Math.random() * (max-min)) +min
. Usando esta ecuación, el valor devuelto es un número aleatorio entre min
y máx
.
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));
Resultado:
1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3
En el caso de que nos interese que el valor max
se incluya en el ámbito de nuestro generador aleatorio, necesitamos cambiar la ecuación a (Math.random() * (max+1 - min)) +min
. Añadiendo 1 a max-min
incluirá el máximo en el rango y Math.floor()
siempre garantizará que este valor no sea más que el 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));
Resultado:
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