Generar números aleatorios enteros en JavaScript es una operación común en muchos proyectos, desde juegos hasta simulaciones. JavaScript proporciona herramientas simples y potentes para lograr esto, principalmente utilizando Math.random()
y Math.floor()
.
Math.random()
y Math.floor()
El método Math.random()
genera un número decimal aleatorio entre 0 (inclusive) y 1 (exclusivo). Para obtener un número entero, es necesario escalar este valor al rango deseado y luego truncarlo a un número entero usando Math.floor()
.
Ejemplo básico:
function generarNumeroAleatorio(max) {
return Math.floor(Math.random() * max);
}
console.log(generarNumeroAleatorio(10)); // Genera un número entre 0 y 9
En este ejemplo, Math.random()
genera un número entre 0 y 1, que se multiplica por max
. El resultado es un número entre 0 y max - 1
.
Para generar un número aleatorio entre un valor mínimo y máximo, debes ajustar la fórmula anterior. Esto se hace sumando el valor mínimo después de calcular el número aleatorio escalado.
Ejemplo:
function generarNumeroAleatorioRango(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(generarNumeroAleatorioRango(5, 15)); // Genera un número entre 5 y 15 (ambos incluidos)
En este caso, Math.random()
se multiplica por la diferencia entre max
y min
(más 1 para incluir ambos extremos). Luego, se añade min
para desplazar el valor dentro del rango deseado.
Si necesitas un número aleatorio que puede ser positivo o negativo, puedes modificar la fórmula para incluir un factor de signo.
Ejemplo:
function generarNumeroAleatorioConSigno(max) {
let numero = Math.floor(Math.random() * max);
return Math.random() < 0.5 ? numero : -numero;
}
console.log(generarNumeroAleatorioConSigno(10)); // Genera un número entre -9 y 9
Aquí, Math.random() < 0.5
determina si el número resultante será positivo o negativo.
1. Generar un número aleatorio de 0 a 100:
let numero = generarNumeroAleatorio(101);
console.log(numero); // Puede ser cualquier número entre 0 y 100
2. Seleccionar un índice aleatorio de un array:
let colores = ['rojo', 'azul', 'verde', 'amarillo'];
let indiceAleatorio = generarNumeroAleatorio(colores.length);
console.log(colores[indiceAleatorio]); // Selecciona un color aleatorio del array
3. Generar un número aleatorio dentro de un rango negativo y positivo:
let numero = generarNumeroAleatorioRango(-10, 10);
console.log(numero); // Puede ser cualquier número entre -10 y 10
Para obtener más información sobre cómo funciona Math.random()
y otros métodos matemáticos en JavaScript, consulta la documentación oficial de Mozilla.
Jorge García
Fullstack developer