"El buen diseño es obvio. El gran diseño es transparente"
- Joe Sparano

Números aleatorios en Javascript

1 minutos de lectura
Fecha: 7/4/2015

En algún momento cuando desarrollamos tendremos la necesidad de generar números aleatorios en Javascript, y no existe una función nativa para poder hacerlo.

Vamos a ver funciones sencillas que nos permiten cubrir esta necesidad.

En primer lugar hay que mencionar que de manera nativa lo que si tenemos es una función de la librería Math que nos sirve de punto de partida, se llama random.

La función Math.random() retorna un punto flotante, un número pseudo-aleatorio dentro del rango [0, 1). Esto es, desde el 0 (Incluido) hasta el 1 pero sin incluirlo (excluido), el cual se puede escalar hasta el rango deseado.

Teniendo claro para que sirve esta función podemos implementar distintas soluciones. Por ejemplo pensemos en este código:

//Devuelve un número entre 1 y N
var num = Math.floor(Math.random() * N + 1);

//Por ejemplo, si queremos un número entre 1 y 100...
var num = Math.floor(Math.random() * 100 + 1);

Teniendo esto en cuenta podemos crearnos una función que nos permita mediante parámetros definir el rango de valores del que aleatoriamente nos devuelve el número, esta es una de las más usadas.

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

//Si queremos un número entre 25 y 50
var num = getRandomNumber(25, 50);

De esta manera ya tenemos una forma cómoda para generar números aleatorios en Javascript, sin embargo si estas usando lodash yo recomiendo usar la función que ya trae para ello, es muy cómoda y muy potente.

Se usa de esta manera:

//Si queremos un número entre 25 y 50
_.random(25, 50);

//Si queremos un número entre 0 y 50
_.random(50);

//Si queremos un número entre 25 y 50 con decimales
_.random(25, 50, true);

Si no sabes lo que es lodash puedes visitar este enlace donde se explica.

Con esto ya sabemos como crearnos una solución eficiente para generar números aleatorios.