Math.random()

Este articulo necesita una revisión técnica. Cómo puedes ayudar.

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)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.random' in that specification.
Standard  

Compatibilidad en navegadores

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: Sotelio, daiant
 Última actualización por: Sotelio,