Random Number Generator
Math.random()
The Math.random() function returns a floating-point, pseudo-random value that is in the range 0 to below 1 (inclusive of 0 but not exactly 1) with an approximately equal distribution over this range -- which you can then scale to your desired range. The implementation selects the initial seed to the random number generation algorithm; it cannot be chosen or reset by the user.https://interactive-examples.mdn.mozilla.net/pages/js/math-random.html
Note: Math.random()
does not offer cryptographicallysecure random numbers. Do not use them for anything related to security. Use the Web Crypto API instead, and more precisely the window.crypto.getRandomValues()
method.
Syntax
Math.random()
Copy to Clipboard
Return value
A floating-point also known as a random number between 0
(inclusive) as well as one (exclusive).
Examples
Note that as numbers in JavaScript are IEEE 754 floating point numbers with round-to-nearest-even behavior, the ranges claimed for the functions below (excluding the one for Math.random()
itself) aren't exact. If extremely large boundaries are set (2^53 or higher), it's possible in very rare cases to calculate the typically-excluded upper limit.
Finding an random number between 0 (inclusive) and 1 (exclusive)
function getRandom() return Math.random();
Copy to Clipboard
The process of generating the random numberbetween two values
This example returns a random number between the specified values. The returned value is no lower than (and might be higher than) min
, and is less than (and less than) max
.
function getRandomArbitrary(min, max) return Math.random() * (max - min) + min;
Copy to Clipboard
Getting a random integer between two values
This example will return an undetermined integer within the range of values you specify. It isn't lower than min
(or the next integer more in value than min
in the event that min
isn't an integer) as well as less than (but not equal to) max
.
function getRandomInt(min, max) min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min) + min); //The maximum is exclusive and the minimum is inclusive
Copy to Clipboard
NOTE: It might be tempting to use Math.round()
to achieve this, however doing this could result in you to have your randomly generated numbers to have a different distribution, which might not be appropriate to your requirements.
The process of generating a random integer between two values, inclusive
The findRandomInt()
function above is inclusive at the minimum, it's exclusive when you go to the maximum. What happens if you require outcomes that are inclusive at both the minimum and maximum? The getRandomIntInclusive()
function below accomplishes that.
function getRandomIntInclusive(min, max) min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive
Comments
Post a Comment