带权重的随机算法

游戏中常见杀怪掉落装备,掉落的装备依据权重随机掉落。比如

掉A装备 权重 30
掉B装备 权重 20
掉C装备 权重 50

算法:
1,将所有权重相加,得到totalWeight;
2,rand(1,totalWeight);
3,循环减去各权重,结果<=0,则跳出循环,完成掉落,否则减去权重后,继续参与运算;

另:为了获取更好的效果,在参加运算前,应将数组先做乱序处理。