Sort of
var RandNum = Math.random(),
letter = null,
obj = {
a : 0.075,
b : 0.123,
c : 0.199,
d : 0.2,
e : 0.4,
f : 0.6,
g : 0.8,
h : 1
}
for (var k in obj) {
if (RandNum < obj[k]) {
letter = k;
break;
}
}
Fiddle
or with two arrays instead
var RandNum = Math.random(),
letters = 'abcdefgh'.split(''),
range = [
0.075,
0.123,
0.199,
0.2,
0.4,
0.6,
0.8,
1
];
while (RandNum < range.pop());
var letter = letters[range.length];
Fiddle
source
share