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