--- title: Math.random() slug: Web/JavaScript/Reference/Global_Objects/Math/random tags: - JavaScript - Math - Números Aleatorios - Random - Referências translation_of: Web/JavaScript/Reference/Global_Objects/Math/random original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/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. 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: {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}.
Math.random()
Ninguno.
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; }
Especificación | Estado | Comentario |
---|---|---|
ECMAScript 1a Edición. | {{Spec2('ES1')}} | Definición inicial. JavaScript 1.0 (Sólo UNIX) / JavaScript 1.1 (Todas las plataformas). |
{{SpecName('ES5.1', '#sec-15.8.2.14', 'Math.random')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-math.random', 'Math.random')}} | {{Spec2('ES6')}} |
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte Básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte Básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |