# How to code a Javascript Random Number Generator

Generating random numbers in JavaScript is easy once you understand how the built-in function to do this works but a lot of developers tend to write repetitive code rather than creating their own random number function which can be re-used.

So in this article I am going to show you how to write your own JavaScript random number generator function which will generate random numbers in a range that you specify.

Watch the video tutorial here.

## Using Math.random() #

So the basics of generating random numbers in JavaScript is to use the `Math.random()`

function which is something that is built-in to the JavaScript language.

A simple call to generate a random number might look this:

```
const number = Math.random();
console.log(number); // 0.2908743426757856
```

If you run this in the browser you will see a long decimal (or floating point) number generator that is anywhere in between 0 and 1;

This isn’t the most useful if you want to be working with whole numbers so we can wrap this in a call to `Math.floor`

to round it down **after it has been multiplied by a certain number**.

```
const number = Math.floor(Math.random() * 100);
console.log(number); // 33
```

## Writing a re-usable function #

So now that we understand how to actually get a random number in JavaScript, how do we create a nice re-usable function that will generate a number in any range?

It’s simply a case of wrapping a call to `Math.random`

in a function and providing an upper and lower limit for the range.

```
const generateRandomNumber = (from = 1, to = 100) => {
return Math.floor(Math.random() * (to - from + 1) + from);
};
```

This function will generate a random number between a given range and will default to 1 and 100 as specified by the default function argument values.

Adding `+ 1`

to the `to - from`

calculation just ensures we’re getting the numbers in the range *inclusive* of the start and end range numbers.

Putting it all together we can generate an array of random numbers for our app code by calling the `generateRandomNumber`

function several times.

```
const generateRandomNumber = (from = 50, to = 100) => {
return Math.floor(Math.random() * (to - from + 1) + from);
};
const randomNumbers = [];
for (let i = 0; i < 10; i++) {
randomNumbers.push(generateRandomNumber());
}
console.log(randomNumbers);
```