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;
}