Sumario

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. La implementación selecciona la semilla inicial hasta el algoritmo que genera el número aleatorio; este no puede ser elegido o cambiado por el usuario.

Nota: Math.random() NO provee números aleatorios con seguridad criptográfica. No deben ser usados para algo relacionado con seguridad. En vez de eso, usar la API Web Crypto, y más precisamente el método: window.crypto.getRandomValues().

Sintaxis

Math.random()

Parámetros

Ninguno.

Ejemplos

Ejemplo: Usando Math.random()

Notar que, como los números en Javascript son números de punto flotante IEEE 754 con redondeo-al-par-más-cercano, los rangos generados por las funciones de abajo (excluyendo a Math.random() en sí misma) no son exactos. Si se eligen límites extremadamente grandes (253 o más), es posible, en casos extremadamente raros, calcular el generalmente-excluído límite superior.

// Retorna un número aleatorio entre 0 (incluido) y 1 (excluido)
function getRandom() {
  return Math.random();
}
// Retorna un número aleatorio entre min (incluido) y max (excluido)
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
// Retorna un entero aleatorio entre min (incluido) y max (excluido)
// ¡Usando Math.round() te dará una distribución no-uniforme!
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}

Especificaciones

Especificación Estado Comentario
ECMAScript 1a Edición. Standard Definición inicial. JavaScript 1.0 (Sólo UNIX) / JavaScript 1.1 (Todas las plataformas).
ECMAScript 5.1 (ECMA-262)
La definición de 'Math.random' en esta especificación.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Math.random' en esta especificación.
Standard  

Compatibilidad en navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte Básico (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte Básico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Etiquetas y colaboradores del documento

 Colaboradores en esta página: hdesoto, CarlosLinares, Sotelio, daiant
 Última actualización por: hdesoto,