--- title: Math.random() slug: Web/JavaScript/Referencia/Objectes_globals/Math/random translation_of: Web/JavaScript/Reference/Global_Objects/Math/random ---
La funció Math.random()
retorna un nombre decimal de punt flotant pseudo-aleatori que roman dins el rang [0, 1)
, és a dir, des de 0 (inclòs) fins a 1 (exclòs), que després pot ser escalat al rang dessitjat. La implementació selecciona la llavor inicial per a l'algoritme generador de nombres aleatoris; aquesta llavor no pot ser resetejada o escollida per l'usuari.
Nota: Math.random()
no proporciona nombres aleatoris criptogràficament segurs. No l'utilitzeu per a cap tasca relacionada amb la seguretat. Per a aquest ús utilitzeu la API Web Crypto, i més concretament el mètode {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}.
Math.random()
Math.random()
Cal destacar que com que els nombres a JavaScript són nombres de punt flotant IEEE 754 amb comportament d'arrodoniment al parell més proper, els rangs proclamats per les funcions de sota (a excepció de Math.random()
) no són exactes. Si s'escullen límits extremadament grans (253 o majors), és possible en casos extremadament rars, obtindre el límit superior que normalment és exclòs.
// Retorna un nombre aleatori entre 0 (inclòs) i 1 (exclòs) function getRandom() { return Math.random(); }
// Retorna un nombre aleatori entre min (inclòs) i max (exclòs) function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; }
// Retorna un nombre sencer aleatori entre min (inclòs) i max (exclòs) // Utilitzar Math.round() proporciona una distribució no uniforme! function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min)) + min; }
// Returns a random integer between min (included) and max (included) // Using Math.round() will give you a non-uniform distribution! function getRandomIntInclusive(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; }
Especificació | Estat | Comentaris |
---|---|---|
{{SpecName('ES1')}} | {{Spec2('ES1')}} | Definició inicial. JavaScript 1.0 (Només UNIX) / JavaScript 1.1 (Totes les plataformes). |
{{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 |
---|---|---|---|---|---|
Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |