## DEV Community is a community of 853,399 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Shaswat Raj

Posted on • Updated on • Originally published at codexdindia.blogspot.com

# Generating Random Whole numbers in JavaScript in a specific range

Video Documentation :- https://youtu.be/xz3VbIaEG8o

Mozilla Developer Network page on this JavaScript Math Object: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random

``````/**
* Returns a random number between min (inclusive) and max (exclusive)
*/
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}

/**
* Returns a random integer between min (inclusive) and max (inclusive).
* The value is no lower than min (or the next integer greater than min
* if min isn't an integer) and no greater than max (or the next integer
* lower than max if max isn't an integer).
* Using Math.round() will give you a non-uniform distribution!
*/
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
``````

## At Last here is the concluded function

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

## And the minified form of the function

``````const getRandomInt = (min, max)=>~~(Math.random()*(max-min+1)+min)
``````

Checkout Instagram :-

## Discussion (15) Jon Randy

``````const getRandomInt = (min, max)=>~~(Math.random()*(max-min+1)+min)
`````` Shaswat Raj

Can You Minify this Function also...

``````function getParameterByName( name ){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return decodeURIComponent(results.replace(/\+/g, " "));
}
`````` This is soooo confusing. I have like zero idea, why this works, espencially the "~" operator.

When I do `~(-1)`, I got 0, but if I do `~~(-1)`, I got -1. emm.... what? Jon Randy • Edited on

`~` is the bitwise NOT operator, which will reverse all bits in the number - having converted it to a 32-bit signed integer first. Applying it twice resets the bits to their original state. It's a dirty trick to convert to an integer

w3schools.com/js/js_bitwise.asp The "minified" form doesn't behave the same. In negative numbers, the first function is inclusive, while the second one is exclusive.

Run both about 30 times to see what I mean, and pass the values `-10, -1`.