## 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`.
{"ft_lang_label":"__label__en","ft_lang_prob":0.769393,"math_prob":0.924723,"size":2710,"snap":"2022-05-2022-21","text_gpt3_token_len":693,"char_repetition_ratio":0.10125647,"word_repetition_ratio":0.09290954,"special_character_ratio":0.26494464,"punctuation_ratio":0.15689981,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9927064,"pos_list":[0,1,2,3,4,5,6,7,8,9,10],"im_url_duplicate_count":[null,null,null,2,null,2,null,null,null,5,null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2022-05-28T07:23:07Z\",\"WARC-Record-ID\":\"<urn:uuid:60af173c-2e8a-4035-9ca6-1806aac6afa8>\",\"Content-Length\":\"247682\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:8feda31f-bb2a-4dcd-b28a-034cea05aa1f>\",\"WARC-Concurrent-To\":\"<urn:uuid:ae003660-8e4a-42c2-ae82-9710cfd1096e>\",\"WARC-IP-Address\":\"146.75.33.194\",\"WARC-Target-URI\":\"https://practicaldev-herokuapp-com.global.ssl.fastly.net/sh20raj/generating-random-whole-numbers-in-javascript-in-a-specific-range-jeo\",\"WARC-Payload-Digest\":\"sha1:WXWM4Z64XFDZULXVRR2B2SNUU3VD4T7X\",\"WARC-Block-Digest\":\"sha1:V3LTSLBIMNDKAIAU5WF6L5GVYEAW2BBY\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2022/CC-MAIN-2022-21/CC-MAIN-2022-21_segments_1652663013003.96_warc_CC-MAIN-20220528062047-20220528092047-00466.warc.gz\"}"}