Skip to main content

Probability

Random username

Return a random username in accordance to the user's probability

Example
Input:
{
"Tom": 9,
"Jerry": 1,
"Kate": 3,
}

Output:
Tom or Jerry or Kate
const users = {
"Tom": 9,
"Jerry": 1,
"Kate": 3,
}

function getRandomUsername(users) {
let totalProb = 0;
const newUserObj = {};

for (let key in users) {
for (let i=0; i<users[key]; i++) {
newUserObj[totalProb] = key;
totalProb++;
}
delete users[key];
}
const rawIndex = Math.floor(Math.random() * totalProb);

return newUserObj[rawIndex];
}