# Multiple ways to generate random numbers between two numbers in javascript

Learn multiple ways to generate random numbers between two numbers in JavaScript with examples.

For example, there are two numbers, minimum=1, and maximum=10. Random numbers between 1 and 10 are one of the numbers from the range. i.e 1,2,3,4,5,6,7,8,9,10.

There are multiple ways we can generate random numbers.

## #Generate Random Numbers between two numbers with javascript?

The `Math.random()` function generates a random floating number between 0 and 1. It returns possible values that are zero, less than 1, and exclude 1.

It returns a float number, use `Math.floor()` to round the lowest number.

``````function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomNumber(1, 10));
``````

It generates a random number between 1 and 10.

Similarly, The above function is simplified using ES6 arrow functions,

Here is an ES6 code to generate random numbers.

``````const getRandomNumber = (min, max) =>
Math.floor(Math.random() * (max - min + 1) + min);
console.log(getRandomNumber(1, 10));
``````

## #Generate random numbers with underscore and lodash libraries

`Underscore` and lodash are javascript libraries, that provide reusable utility functions.

If you already have the underscore or lodash libraries in your application, use the `random(min, max) function`.

Here is a syntax

``````random(lower, upper, float - type);
``````

`lower` is a lower bound value and is optional. `upper` is the upper bound value. `float-type` is true, and returns a floating value.

A random number is inclusive of lower and upper value.

Returns a number between lower and upper value

``````_.random(1, 100); // returns integer number between 1 and 100
_.random(1, 1000); // returns integer number between 1 and 1000
_.random(10, true); // returns floating number between 1 and 10
``````

## #Generate random numbers with a random npm library

In Nodejs, `random` is an npm library that provides advanced utility functions for generating random numbers.

It returns boolean, integer, and floating random values. It uses normal and Poisson distribution using given parameters.

Here is a command to install to node application.

``````npm install --save random
``````

Here is an ES5 javascript code to generate random numbers

``````const random = require("random");
random.int(1, 10); // 8
random.float(1, 10); // 6.3
``````

use import with ES6 to create the random object.

``````import random from "random";
random.int(1, 10); // 8
random.float(1, 10); // 6.3
``````

## #Conclusion

Learn multiple ways to return random numbers and float for given lower and upper values.