In JavaScript, we can get a Random number; however, this number is between 0 and 1 which is not very useful when we want to work with integers.

For example, executing the random method of the Math Object we can get something like this:

Math.random(); // 0.7427427755721524 Math.random(); // 0.001514993949523702 Math.random(); // 0.4938488937880676

Many languages like PHP has a random function which takes two integers as parameters and returns a number in the range of the value of the two integers. (The range include the parameters). For example, we can do this in PHP:

rand(10,20); //12 rand(10,20); //18 rand(10,20); //17

We can emulate this with the following function:

function randomFromTo(from, to){ return Math.floor(Math.random() * (to - from + 1) + from); } randomFromTo(10,20); //18 randomFromTo(10,20); //10 randomFromTo(10,20); //15 randomFromTo(10,20); //20

### What about using it as part of the JavaScript Core?

Most of the developers do not recommend to extend the built-in objects because it can create confusion among developers working on the same project. However, there are a lot of frameworks that extend the built-in object like Prototype. The way to do it is using the prototype object that is part of all objects created in JavaScript. Example:

if(!Math.randomFromTo){ Math.randomFromTo = function(from, to){ return Math.floor(Math.random() * (to - from + 1) + from); }; }

With this piece of code we can call the method from the Math Object like this:

Math.randomFromTo(100,1000) //950

### How to get a random item from an array

If you want to go beyond, you can add a new method to the Array Object which would return a random element. Example:

if (!Array.prototype.random) { Array.prototype.random = function() { return this[Math.randomFromTo(0, this.length - 1)]; } }

Now we can use the randomItem method like this:

[13, 5, 86, 11, 15].random(); //11

This would return one of the items of the array randomly.