# randomNumber.js

Get a random integer with a minimum and maximum value.

## Example

``````// Get a random number between 5 and 42
let rand = randomNumber(5, 42);
``````

## The helper function

``````/**
* Get a random integer with a minimum and maximum value
* (c) Chris Ferdinandi, MIT License, https://gomakethings.com
* @param  {Integer} min  The minimum value
* @param  {Integer} max  The maximum value
* @return {Integer}      A random number
*/
function randomNumber (min = 0, max = 1000) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
``````

## How it works

The `Math.random()` method generates a random float (a number with decimals) between `0` and `1`.

``````// returns something like this: 0.37111265461165543
// It will be different every time
let rand = Math.random();
``````

The number the `Math.random()` method generates is inclusive of `0` (as in, it could sometimes be `0`, though I’ve never personally seen that happen), but exclusive of `1` (as in, it will never reach `1`).

We’ll create a helper function that accepts a `min` and `max` for the random number as arguments.

Then, we’ll subtract the `min` from the `max`, and add `1` to it (otherwise the `max` would never be reached). We’ll multiply the returned value of `Math.random()` by this new number, and add the `min` to it. This gives us a random float between our two values.

Finally, we’ll use the `Math.floor()` method to turn it into an integer, and return the result.

``````function randomNumber (min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
``````