functiongetRandomIntInclusive(min, max){
min =Math.ceil(min);
max =Math.floor(max);returnMath.floor(Math.random()*(max - min +1))+ min;//The maximum is inclusive and the minimum is inclusive }
var min =10, max =25;//inclusive random (can output 25)var random =Math.round(Math.random()*(max - min)+ min);//exclusive random (max number that can be output is 24, in this case)var random =Math.floor(Math.random()*(max - min)+ min);//floor takes the number beneath the generated random and round takes//which ever is the closest to the decimal
functiongetRandomInt(min, max){
min =Math.ceil(min);
max =Math.floor(max);returnMath.floor(Math.random()*(max - min))+ min;//The maximum is exclusive and the minimum is inclusive}
functionran(min, max, exclude =false){let range = max - min +1;//if you don't want to exclude any number then just returns numbr in rangeif(!exclude)returnMath.floor(Math.random()* range + min);//If you want to exlude only one number then here's O(1) solution.//number from range 1-4 but never get 3://get number between 1-3 and if its 3 then return 4if(!exclude?.length){let num =Math.floor(Math.random()*(range -1)+ min);return num == exclude ? range : num;}//if you want to exlude multiple numbers here's O(n) solution://foreach number in range i want to check if its not on exlude list//but i dont want to use indexOf or find functions as they are O(n) making this O(n^2)//i create object with keys being exluded numbers as reading object by key is O(1)// ?. operator returns null if such key doesnt have valuelet badNum ={};for(let i =0; i < exclude.length; i++){
badNum[exclude[i]]=true;}let googNum =[];for(let i =0; i < range; i++){if(!badNum?.[i]) googNum.push(i);}return googNum[Math.floor(Math.random()* googNum.length)];}
constrandomNumber=({ min, max }={min:0,max:1})=>{if(min >= max){throwError(`minimum value (${min}) is larger than or equal to maximum value (${max})`);}returnMath.floor(Math.random()*Math.floor(max - min +1)+ min);};// Usage: random number between 10 and 100.const n =randomNumber({min:10,max:100});