25/08/2020 JavaScript Math.
random() Method Explained
JavaScript
Math.random()
Method Explained
Random Method
The JavaScript Math.random() method is an excellent built-in method
for producing random numbers. When Math.random() is executed, it
returns a random number that can be anywhere between 0 and 1. The
0 is included and 1 is excluded.
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 1/8
25/08/2020 JavaScript Math.random() Method Explained
Generating a random
floating point number
between 0 and 1
The Math.random() method will return a floating point (decimal)
number greater than or equal to 0 and less than (but never equal to) 1.
In other words 0 <= x < 1 . For example:
console.log(Math.random());
// 0.7069207248635578
console.log(Math.random());
// 0.765046694794209
console.log(Math.random());
// 0.14069121642698246
(Of course, the numbers returned will be different every time. This will
be assumed for all following examples - different results will happen on
each pass.)
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 2/8
25/08/2020 JavaScript Math.random() Method Explained
To get a random number between a larger range multiply the result of M
ath.random() by a number.
Generating a random
floating point number
between 0 and a
specified max
Usually you do not need random numbers between 0 and 1 - you need
larger numbers or even integers.
For example, if you want a random floating point number between 0
and 10, you could use:
var x = Math.random()*10;
console.log(x);
// 4.133793901445541
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 3/8
25/08/2020 JavaScript Math.random() Method Explained
Generating a random
floating point number
within a range
If you need a random floating point number that ranges between two
specific numbers, you could do something like this:
var min = 83.1;
var max = 193.36;
var x = Math.random()*(max - min)+min;
console.log(x);
// 126.94014012699063
Generating a random
integer between 0 and
a max
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 4/8
25/08/2020 JavaScript Math.random() Method Explained
Often you need integers. To do this you will have to use some other
methods from the Math object, Math.floor() (rounds down to the
nearest integer) and Math.ceil() (rounds up to the nearest integer).
For example, if you need to select randomly from an array of 10
elements, you would need a random number between 0 and 9 inclusive
(remember that arrays are zero indexed).
var x = Math.floor(Math.random()*10);
console.log(x);
// 7
(Remember that Math.random() will never return exactly 1, so Math.ra
ndom()*10 will never return exactly 10. This means that after rounding
down, the result will always be 9 or less.)
Generating a random
integer between 1 and
a max
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 5/8
25/08/2020 JavaScript Math.random() Method Explained
If you need a random number with the minimum number being 1 (for
example picking a random day in January) you could use the Math.cei
l() method.
var x = Math.ceil(Math.random()*31);
console.log(x);
// 23
Another way would have been to use the previous function (using Mat
h.floor() ) and add 1 to it:
var x = Math.floor(Math.random()*31)+1;
console.log(x);
// 17
Generating a random
integer within a range
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 6/8
25/08/2020 JavaScript Math.random() Method Explained
Lastly, occasionally you need a random integer between two specific
integers. For example, if you are trying to pick raffle tickets and you
know the numbers of the lowest and largest number:
var min = 1718;
var max = 3429;
var x = Math.floor(Math.random()*(max-min+1)+min);
console.log(x);
//2509
How random is
Math.random()?
It may be pointed out that the number returned by Math.random() is a
pseudo-random number as no computer can generate a truly random
number, that exhibits randomness over all scales and over all sizes of
data sets. However, the pseudo-random number generated by Math.ra
ndom() is usually sufficient for the needs of nearly any program you
may write. The not-truly-randomness only becomes apparent in
astronomically large number sets or
https://www.freecodecamp.org/news/javascript-math-random-method-explained/
hen uncommonly precise 7/8
25/08/2020 JavaScript Math.random() Method Explained
astronomically large number sets or when uncommonly precise
decimals are needed.
https://www.freecodecamp.org/news/javascript-math-random-method-explained/ 8/8