Volver a la página principal
miércoles 21 agosto 2024
25

Cómo generar un número aleatorio entero en JavaScript

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().

Uso de 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.

Generar un número aleatorio dentro de un rango específico

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.

Generar un número aleatorio positivo o negativo

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.

Algunos ejemplos

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

Referencias a sitios oficiales

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.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer