Is there a way to generate a random number in a specified range with JavaScript ?
For example: a specified range from 1 to 6 were the random number could be either 1, 2, 3, 4, 5, or 6.
Is there a way to generate a random number in a specified range with JavaScript ?
For example: a specified range from 1 to 6 were the random number could be either 1, 2, 3, 4, 5, or 6.
If you wanted to get a random integer between 1 (and only 1) and 6, you would calculate:
const rndInt = Math.floor(Math.random() * 6) + 1
console.log(rndInt)
Where:
Math.floor(Math.random() * 6) + 2
means that if Math.random()
results into 0.99 our random value would be 7
–
Disequilibrium Math.floor(Math.random() * (max-min)) + min
so in this case it would be Math.floor(Math.random() * 5) + 1
–
Spreadeagle max-min
. –
Genevagenevan Math.floor(Math.random() * 900) + 700
won't work??? It gives the perfect (pseudo-random) results in the range [700,1599]. –
Stewardess not correct
vs not convenient
you say it's not correct, when it is, based on the answer given, since the number of possible values in the range [700,900] is 201 therefore giving the statement Math.floor(Math.random()*201)+700;
as per the answer given, which is correct. –
Stewardess Math.floor(Math.random() * 101) + 0;
as the answer states. See how 100-0+1==101
, basic subtraction, just as is stated in the answer... –
Stewardess Math.floor(Math.random() * 6 + 1)
. You have to include everything in Math.floor
for it to work properly with other minimum values. –
Mariehamn Math.floor(Math.random() * 70) + 50
, I need number between 50-70. –
Hibernaculum Math.floor(Math.random() * 1650) + 1400;
The correct way is Math.floor(Math.random() * (max - min)) + min;
–
Aeromedical 1
. Failing to specifying it was highly misleading and potentially dangerous. –
Vinegary Array(100000).fill().map( () => Math.floor(Math.random() * 6)).reduce( (acc, i) => { acc[i]++; return acc } , [0,0,0,0,0,0])
in your enviroment. My result: [16609, 16664, 16769, 16450, 16708, 16800]
–
Glasswork function getRandomInt(min, max) { return Math.round((min - 0.5) + Math.random() * (max - min + 1)); }
–
Fire Math.floor()
instead of Math.ceil()
? It seems to me, if we used Math.ceil()
instead, we could avoid the +1
–
Plinth Math.ceil()
means you have to add min-1
instead of adding min
, which makes using Math.floor()
simpler in more general cases. –
Plinth function randomIntFromInterval(min, max) { // min and max included
return Math.floor(Math.random() * (max - min + 1) + min)
}
const rndInt = randomIntFromInterval(1, 6)
console.log(rndInt)
What it does "extra" is it allows random intervals that do not start with 1. So you can get a random number from 10 to 15 for example. Flexibility.
to
arg, the from
arg doubles as the max –
Begot Returns a floating-point, pseudo-random number in the range [0, 1) that is, from 0 (inclusive) up to but not including 1 (exclusive), which you can then scale to your desired range.
(developer.mozilla.org/en-US/docs/JavaScript/Reference/…) –
Ling parseInt()
from
and to
. It returns NaN
for non numeric values so it's cool. –
Ling return Math.floor(Math.random()*(max-min+1))+min
, it works. –
Exhibitionist function getRandomInt(min, max) { return Math.round((min - 0.5) + Math.random() * (max - min + 1)); }
–
Fire Math.floor(Math.random() * myArray.length)
(because the ... length-1 + 0 +1) + 0 will be omited. –
Lanti If you wanted to get a random integer between 1 (and only 1) and 6, you would calculate:
const rndInt = Math.floor(Math.random() * 6) + 1
console.log(rndInt)
Where:
Math.floor(Math.random() * 6) + 2
means that if Math.random()
results into 0.99 our random value would be 7
–
Disequilibrium Math.floor(Math.random() * (max-min)) + min
so in this case it would be Math.floor(Math.random() * 5) + 1
–
Spreadeagle max-min
. –
Genevagenevan Math.floor(Math.random() * 900) + 700
won't work??? It gives the perfect (pseudo-random) results in the range [700,1599]. –
Stewardess not correct
vs not convenient
you say it's not correct, when it is, based on the answer given, since the number of possible values in the range [700,900] is 201 therefore giving the statement Math.floor(Math.random()*201)+700;
as per the answer given, which is correct. –
Stewardess Math.floor(Math.random() * 101) + 0;
as the answer states. See how 100-0+1==101
, basic subtraction, just as is stated in the answer... –
Stewardess Math.floor(Math.random() * 6 + 1)
. You have to include everything in Math.floor
for it to work properly with other minimum values. –
Mariehamn Math.floor(Math.random() * 70) + 50
, I need number between 50-70. –
Hibernaculum Math.floor(Math.random() * 1650) + 1400;
The correct way is Math.floor(Math.random() * (max - min)) + min;
–
Aeromedical 1
. Failing to specifying it was highly misleading and potentially dangerous. –
Vinegary Array(100000).fill().map( () => Math.floor(Math.random() * 6)).reduce( (acc, i) => { acc[i]++; return acc } , [0,0,0,0,0,0])
in your enviroment. My result: [16609, 16664, 16769, 16450, 16708, 16800]
–
Glasswork function getRandomInt(min, max) { return Math.round((min - 0.5) + Math.random() * (max - min + 1)); }
–
Fire Math.floor()
instead of Math.ceil()
? It seems to me, if we used Math.ceil()
instead, we could avoid the +1
–
Plinth Math.ceil()
means you have to add min-1
instead of adding min
, which makes using Math.floor()
simpler in more general cases. –
Plinth Returns an Integer Random Number between min (included) and max (included):
function randomInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Returns Any Random Number between min (included) and max (not included):
function randomNumber(min, max) {
return Math.random() * (max - min) + min;
}
Useful Examples (Integers):
// 0 -> 10
const rand1 = Math.floor(Math.random() * 11);
// 1 -> 10
const rand2 = Math.floor(Math.random() * 10) + 1;
// 5 -> 20
const rand3 = Math.floor(Math.random() * 16) + 5;
// -10 -> (-2)
const rand4 = Math.floor(Math.random() * 9) - 10;
console.log(rand1);
console.log(rand2);
console.log(rand3);
console.log(rand4);
** And always nice to be reminded (Mozilla):
Math.random() does not provide cryptographically secure random numbers. Do not use them for anything related to security. Use the Web Crypto API instead, and more precisely, the window.crypto.getRandomValues() method.
[1,2]
, there is 25% chance Math.random()
would give you a number from one of these [0,0.49]
, [0.5,0.99]
, [1,1.49]
, [1.5,1.99]
. Rounding those intervals would result in 0, 1, 1, 2 which is not an even distribution. Flooring them results in 0, 0, 1, 1. –
Behling Math.round
over Math.floor
would give different results. –
Behling function getRandomInt(min, max) { return Math.round((min - 0.5) + Math.random() * (max - min + 1)); }
–
Fire TL;DR
function generateRandomInteger(min, max) {
return Math.floor(min + Math.random()*(max - min + 1))
}
To get the random number
generateRandomInteger(-20, 20);
EXPLANATION BELOW
integer - A number which is not a fraction; a whole number
We need to get a random number , say X between min and max.
X, min and max are all integers
i.e min <= X <= max
If we subtract min from the equation, this is equivalent to
0 <= (X - min) <= (max - min)
Now, lets multiply this with a random number r which is
0 <= (X - min) * r <= (max - min) * r
Now, lets add back min to the equation
min <= min + (X - min) * r <= min + (max - min) * r
For, any given X, the above equation satisfies only when r has range of [0,1] For any other values of r the above equation is unsatisfied.
Learn more about ranges [x,y] or (x,y) here
Our next step is to find a function which always results in a value which has a range of [0,1]
Now, the range of r i.e [0,1] is very similar to Math.random() function in Javascript. Isn't it?
The Math.random() function returns a floating-point, pseudo-random number in the range [0, 1); that is, from 0 (inclusive) up to but not including 1 (exclusive)
Notice that in Math.random() left bound is inclusive and the right bound is exclusive. This means min + (max - min) * r
will evaluate to having a range from [min, max)
To include our right bound i.e [min,max]
we increase the right bound by 1 and floor the result.
function generateRandomInteger(min, max) {
return Math.floor(min + Math.random()*(max - min + 1))
}
generateRandomInteger(-20, 20)
;
~~a
and Bitwise OR (a | 0) are faster ways to write Math.floor(a) –
Slain a | 0
is also the fastest and most optimized way to convert a string to an integer. It only works with strings containing integers ("444"
and "-444"
), i.e. no floats/fractions. It yields a 0
for everything that fails. It is one of the main optimizations behind asm.js. –
Stopping ~~(Math.random() * (50000000000000 - 0 + 1)) + 0
and Math.floor(Math.random() * (50000000000000 - 0 + 1)) + 0
–
Responsum ~~(Math.random() * 9) + 2
it printed 10. –
Mangrove 2
to 9
, you'd do ~~(Math.random() * (max - min + 1)) + min
i.e. ~~(Math.random() * (9 - 2 + 1)) + 2
= ~~(Math.random() * 8) + 2
. –
Hyo var x = 6; // can be any number
var rand = Math.floor(Math.random()*x) + 1;
jsfiddle: https://jsfiddle.net/cyGwf/477/
Random Integer: to get a random integer between min
and max
, use the following code
function getRandomInteger(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
Random Floating Point Number: to get a random floating point number between min
and max
, use the following code
function getRandomFloat(min, max) {
return Math.random() * (max - min) + min;
}
Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Get a random integer between 0 and 400
let rand = Math.round(Math.random() * 400)
document.write(rand)
Get a random integer between 200 and 1500
let range = {min: 200, max: 1500}
let delta = range.max - range.min
const rand = Math.round(range.min + Math.random() * delta)
document.write(rand)
function randBetween(min, max){
let delta = max - min
return Math.round(min + Math.random() * delta)
}
document.write(randBetween(10, 15));
// JavaScript ES6 arrow function
const randBetween = (min, max) => {
let delta = max - min
return Math.round(min + Math.random() * delta)
}
document.write(randBetween(10, 20))
Math is not my strong point, but I've been working on a project where I needed to generate a lot of random numbers between both positive and negative.
function randomBetween(min, max) {
if (min < 0) {
return min + Math.random() * (Math.abs(min)+max);
}else {
return min + Math.random() * max;
}
}
E.g
randomBetween(-10,15)//or..
randomBetween(10,20)//or...
randomBetween(-200,-100)
Of course, you can also add some validation to make sure you don't do this with anything other than numbers. Also make sure that min is always less than or equal to max.
min + Math.random() * max
will give you numbers between min and min+max, which is not what you want. The first branch of the if
is correct, but could be simplified to say return min + Math.random() * (max - min)
, which is the correct solution regardless of whether min is positive or negative (see the other answers). Also, keep in mind that you still need to floor the result if you don't want fractions. –
Viveca ES6 / Arrow functions version based on Francis' code (i.e. the top answer):
const randomIntFromInterval = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
I wrote more flexible function which can give you random number but not only integer.
function rand(min,max,interval)
{
if (typeof(interval)==='undefined') interval = 1;
var r = Math.floor(Math.random()*(max-min+interval)/interval);
return r*interval+min;
}
var a = rand(0,10); //can be 0, 1, 2 (...) 9, 10
var b = rand(4,6,0.1); //can be 4.0, 4.1, 4.2 (...) 5.9, 6.0
Fixed version.
Math.random()
is fast and suitable for many purposes, but it's not appropriate if you need cryptographically-secure values (it's not secure), or if you need integers from a completely uniform unbiased distribution (the multiplication approach used in others answers produces certain values slightly more often than others).
In such cases, we can use crypto.getRandomValues()
to generate secure integers, and reject any generated values that we can't map uniformly into the target range. This will be slower, but it shouldn't be significant unless you're generating extremely large numbers of values.
To clarify the biased distribution concern, consider the case where we want to generate a value between 1 and 5, but we have a random number generator that produces values between 1 and 16 (a 4-bit value). We want to have the same number of generated values mapping to each output value, but 16 does not evenly divide by 5: it leaves a remainder of 1. So we need to reject 1 of the possible generated values, and only continue when we get one of the 15 lesser values that can be uniformly mapped into our target range. Our behaviour could look like this pseudocode:
Generate a 4-bit integer in the range 1-16.
If we generated 1, 6, or 11 then output 1.
If we generated 2, 7, or 12 then output 2.
If we generated 3, 8, or 13 then output 3.
If we generated 4, 9, or 14 then output 4.
If we generated 5, 10, or 15 then output 5.
If we generated 16 then reject it and try again.
The following code uses similar logic, but generates a 32-bit integer instead, because that's the largest common integer size that can be represented by JavaScript's standard number
type. (This could be modified to use BigInt
s if you need a larger range.) Regardless of the chosen range, the fraction of generated values that are rejected will always be less than 0.5, so the expected number of rejections will always be less than 1.0 and usually close to 0.0; you don't need to worry about it looping forever.
const randomInteger = (min, max) => {
const range = max - min;
const maxGeneratedValue = 0xFFFFFFFF;
const possibleResultValues = range + 1;
const possibleGeneratedValues = maxGeneratedValue + 1;
const remainder = possibleGeneratedValues % possibleResultValues;
const maxUnbiased = maxGeneratedValue - remainder;
if (!Number.isInteger(min) || !Number.isInteger(max) ||
max > Number.MAX_SAFE_INTEGER || min < Number.MIN_SAFE_INTEGER) {
throw new Error('Arguments must be safe integers.');
} else if (range > maxGeneratedValue) {
throw new Error(`Range of ${range} (from ${min} to ${max}) > ${maxGeneratedValue}.`);
} else if (max < min) {
throw new Error(`max (${max}) must be >= min (${min}).`);
} else if (min === max) {
return min;
}
let generated;
do {
generated = crypto.getRandomValues(new Uint32Array(1))[0];
} while (generated > maxUnbiased);
return min + (generated % possibleResultValues);
};
console.log(randomInteger(-8, 8)); // -2
console.log(randomInteger(0, 0)); // 0
console.log(randomInteger(0, 0xFFFFFFFF)); // 944450079
console.log(randomInteger(-1, 0xFFFFFFFF));
// Error: Range of 4294967296 covering -1 to 4294967295 is > 4294967295.
console.log(new Array(12).fill().map(n => randomInteger(8, 12)));
// [11, 8, 8, 11, 10, 8, 8, 12, 12, 12, 9, 9]
Math.floor(Math.random() * 6) + 1
.Task: generate random number between 1 and 6.
Math.random()
returns floating point number between 0 and 1 (like 0.344717274374 or 0.99341293123 for example), which we will use as a percentage, so Math.floor(Math.random() * 6) + 1
returns some percentage of 6 (max: 5, min: 0) and adds 1. The author got lucky that lower bound was 1., because percentage floor will "maximumly" return 5 which is less than 6 by 1, and that 1 will be added by lower bound 1.
The problems occurs when lower bound is greater than 1. For instance, Task: generate random between 2 and 6.
(following author's logic)
Math.floor(Math.random() * 6) + 2
, it is obviously seen that if we get 5 here -> Math.random() * 6
and then add 2, the outcome will be 7 which goes beyond the desired boundary of 6.
Another example, Task: generate random between 10 and 12.
Math.floor(Math.random() * 12) + 10
, (sorry for repeating) it is obvious that we are getting 0%-99% percent of number "12", which will go way beyond desired boundary of 12.So, the correct logic is to take the difference between lower bound and upper bound add 1, and only then floor it (to substract 1, because Math.random()
returns 0 - 0.99, so no way to get full upper bound, thats why we adding 1 to upper bound to get maximumly 99% of (upper bound + 1) and then we floor it to get rid of excess). Once we got the floored percentage of (difference + 1), we can add lower boundary to get the desired randomed number between 2 numbers.
The logic formula for that will be: Math.floor(Math.random() * ((up_boundary - low_boundary) + 1)) + 10
.
P.s.: Even comments under the top-rated answer were incorrect, since people forgot to add 1 to the difference, meaning that they will never get the up boundary (yes it might be a case if they dont want to get it at all, but the requirenment was to include the upper boundary).
Example
Return a random number between 1 and 10:
Math.floor((Math.random() * 10) + 1);
The result could be:
3
Try yourself: here
--
or using lodash / undescore:
_.random(min, max)
I was searching random number generator written in TypeScript and I have written this after reading all of the answers, hope It would work for TypeScript coders.
Rand(min: number, max: number): number {
return (Math.random() * (max - min + 1) | 0) + min;
}
Crypto-strong random integer number in range [a,b] (assumption: a < b )
let rand= (a,b)=> a+(b-a+1)*crypto.getRandomValues(new Uint32Array(1))[0]/2**32|0
console.log( rand(1,6) );
2**32
instead of 2**31
which would be the maximum value JS 32 bit integer. –
Raquel Inspite of many answers and almost same result. I would like to add my answer and explain its working. Because it is important to understand its working rather than copy pasting one line code. Generating random numbers is nothing but simple maths.
CODE:
function getR(lower, upper) {
var percent = (Math.random() * 100);
// this will return number between 0-99 because Math.random returns decimal number from 0-0.9929292 something like that
//now you have a percentage, use it find out the number between your INTERVAL :upper-lower
var num = ((percent * (upper - lower) / 100));
//num will now have a number that falls in your INTERVAL simple maths
num += lower;
//add lower to make it fall in your INTERVAL
//but num is still in decimal
//use Math.floor>downward to its nearest integer you won't get upper value ever
//use Math.ceil>upward to its nearest integer upper value is possible
//Math.round>to its nearest integer 2.4>2 2.5>3 both lower and upper value possible
console.log(Math.floor(num), Math.ceil(num), Math.round(num));
}
to return 1-6 like a dice basically,
return Math.round(Math.random() * 5 + 1);
This function can generate a random integer number between (and including) min and max numbers:
function randomNumber(min, max) {
if (min > max) {
let temp = max;
max = min;
min = temp;
}
if (min <= 0) {
return Math.floor(Math.random() * (max + Math.abs(min) + 1)) + min;
} else {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
}
Example:
randomNumber(-2, 3); // can be -2, -1, 0, 1, 2 and 3
randomNumber(-5, -2); // can be -5, -4, -3 and -2
randomNumber(0, 4); // can be 0, 1, 2, 3 and 4
randomNumber(4, 0); // can be 0, 1, 2, 3 and 4
Math.random()
will never be 1. –
Cookgeneral This simple function is handy and works in ANY cases (fully tested). Also, the distribution of the results has been fully tested and is 100% correct.
function randomInteger(pMin = 1, pMax = 1_000_000_000)
//Author: Axel Gauffre.
//Here: https://mcmap.net/q/40496/-generate-random-number-between-two-numbers-in-javascript
//Inspired by: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_number_between_two_values
//
//This function RETURNS A RANDOM INTEGER between pMin (INCLUDED) and pMax (INCLUDED).
// - pMin and pMax should be integers.
// - HOWEVER, if pMin and/or pMax are FLOATS, they will be ROUNDED to the NEAREST integer.
// - NEGATIVE values ARE supported.
// - The ORDER of the 2 arguments has NO consequence: If pMin > pMax, then pMin and pMax will simply be SWAPPED.
// - If pMin is omitted, it will DEFAULT TO 1.
// - If pMax is omitted, it will DEFAULT TO 1 BILLION.
//
//This function works in ANY cases (fully tested).
//Also, the distribution of the results has been fully tested and is 100% correct.
{
pMin = Math.round(pMin);
pMax = Math.round(pMax);
if (pMax < pMin) { let t = pMin; pMin = pMax; pMax = t;}
return Math.floor(Math.random() * (pMax+1 - pMin) + pMin);
}
Adding float
with fixed precision version based on the int
version in @Francisc's answer:
function randomFloatFromInterval (min, max, fractionDigits) {
const fractionMultiplier = Math.pow(10, fractionDigits)
return Math.round(
(Math.random() * (max - min) + min) * fractionMultiplier,
) / fractionMultiplier
}
so:
randomFloatFromInterval(1,3,4) // => 2.2679, 1.509, 1.8863, 2.9741, ...
and for int answer
randomFloatFromInterval(1,3,0) // => 1, 2, 3
Using random function, which can be reused.
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
randomNum(1, 6);
Short Answer: It's achievable using a simple array.
you can alternate within array elements.
This solution works even if your values are not consecutive. Values don't even have to be a number.
let array = [1, 2, 3, 4, 5, 6];
const randomValue = array[Math.floor(Math.random() * array.length)];
This should work:
const getRandomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min
If the starting number is 1, as in your example (1-6), you can use Math.ceil() method instead of Math.floor().
Math.ceil(Math.random() * 6)
instead of
Math.floor(Math.random() * 6) + 1
Let's not forget other useful Math methods.
This is about nine years late, but randojs.com makes this a simple one-liner:
rando(1, 6)
You just need to add this to the head of your html document, and you can do pretty much whatever you want with randomness easily. Random values from arrays, random jquery elements, random properties from objects, and even preventing repetitions if needed.
<script src="https://randojs.com/1.0.0.js"></script>
Try using:
function random(min, max) {
return Math.round((Math.random() *( Math.abs(max - min))) + min);
}
console.log(random(1, 6));
I discovered a great new way to do this using ES6 default parameters. It is very nifty since it allows either one argument or two arguments. Here it is:
function random(n, b = 0) {
return Math.random() * (b-n) + n;
}
This works for me and produces values like Python's random.randint standard library function:
function randint(min, max) {
return Math.round((Math.random() * Math.abs(max - min)) + min);
}
console.log("Random integer: " + randint(-5, 5));
for big number.
var min_num = 900;
var max_num = 1000;
while(true){
let num_random = Math.random()* max_num;
console.log('input : '+num_random);
if(num_random >= min_num){
console.log(Math.floor(num_random));
break;
} else {
console.log(':::'+Math.floor(num_random));
}
}
If you want to cover negative and positive numbers, and make it safe then to use following:
JS solution:
function generateRangom(low, up) {
const u = Math.max(low, up);
const l = Math.min(low, up);
const diff = u - l;
const r = Math.floor(Math.random() * (diff + 1)); //'+1' because Math.random() returns 0..0.99, it does not include 'diff' value, so we do +1, so 'diff + 1' won't be included, but just 'diff' value will be.
return l + r; //add the random number that was selected within distance between low and up to the lower limit.
}
Java solution:
public static int generateRandom(int low, int up) {
int l = Math.min(low, up);
int u = Math.max(low, up);
int diff = u - l;
int r = (int) Math.floor(Math.random() * (diff + 1)); // '+1' because Math.random() returns 0..0.99, it does not include 'diff' value, so we do +1, so 'diff + 1' won't be included, but just 'diff' value will be.
return l + r;//add the random number that was selected within distance between low and up to the lower limit.
}
Typescript solution with digits:
function getRandomNumber( min:number, max:number, digits=0 ):number {
// 0=1, 2=10, 3=100, 4=1000, ...
const multiplier = digits >= 1 ? Math.pow( 10, digits ) : 1
const start = min * multiplier
const space = (max-min) * multiplier
const int = Math.floor( start + Math.random()*(space+1) )
return int / multiplier
}
Advanced solution with
a, b
(number) — flexible min max parameterdigits
(boolean) — define count of digitsincludeAB
(boolean) — define if you want to exclude a and b from resultsfunction getRandomNumberAdv( a:number, b:number, digits=0, includeAB=true ):number {
const multiplier = digits >= 1 ? Math.pow( 10, digits ) : 1
const border = includeAB ? 0 : 1
const start = Math.min(a,b) * multiplier + border
const space = Math.max(a,b) * multiplier - start - border
const int = Math.floor( start + Math.random()*(space+1) )
return int / multiplier
}
Test of getRandomNumberAdv( 1, -1, 1, false )
:
const statistic:any = {}
for (let i = 0; i < 1000000; i++) {
const v = getRandomNumberAdv( 1, -1, 1, false )
if( statistic[v] === undefined ) statistic[v]=0
statistic[v]++
}
console.log( JSON.stringify( statistic, null, 2 ))
Results of getRandomNumberAdv( 1, -1, 1, false )
:
{
"-0.9": 52638,
"-0.8": 52862,
"-0.7": 52658,
"-0.6": 52217,
"-0.5": 52634,
"-0.4": 52894,
"-0.2": 52420,
"-0.3": 52838,
"-0.1": 52599,
"0" : 52604,
"0.1": 52615,
"0.2": 52286,
"0.3": 52129,
"0.4": 52495,
"0.5": 52920,
"0.6": 52707,
"0.7": 52855,
"0.8": 52827,
"0.9": 52802,
}
© 2022 - 2024 — McMap. All rights reserved.
Math.floor((Math.random()*10)+1);
cannot work for you as specified here at w3schools.com/jsref/jsref_random.asp ..? – Liquesce1 and 10
. this method boils down to other questions for example.lottery syndrome
- does someone else getting 5 lower my chances of getting 5 – Preteritionpseudo-random
numbers are not a problem, but some cases, you realy want random (for example in a lottery). You could use random.org, which uses atmospheric noise to generate random numbers. But notice that also this is not random, we just cannot (yet) guess the outcome of this noice. – Defrock[2, 1, 2, 1, 2, 1, 2, 1, 2, 1]
. its a 50% chance to get 1 but the expected max number of attempts will be 10. each time a number is achieved remove it from the list increases chances for other entries. thanks for that random.org by the way. – Preteritioncrypto.randomInt(0,100) / 100
– FiduciaryMath.round(Math.random() * (to - from)) + from);
. You can generate (to - from) of these random numbers every 0.5 second using this function:function printNumbersTmOut(from, to){ time = 0; delay = 500; tmOut = setTimeout( function rangeCounter() { time = time + 1; if (from + time <= to) { setTimeout(rangeCounter, delay) } console.log(Math.round(Math.random() * (to - from)) + from); }, delay ) }
– Autoeroticism