JSFiddle - React, Tailwind, and code Playground
JavaScript
var results = [];
var max = 10;
for(var i=0;i<1000;i++) {
var result = getRndLog(max);
if(!results[result]){
results[result] = 0;
}
results[result]++;
}
alert(results);
function getRndLog(max) {
idx = 0;
if (max > 1) {
idx = Math.floor(Math.log((Math.random()*Math.pow(2.0, max))+1.0) / Math.log(2.0));
if(idx >= max) {
idx = max - 1
}
idx = (max-idx) - 1
}
return idx;
}