randWeightedPick<T> static method
Implementation
static T randWeightedPick<T>(List<T> arr, List<double> weights) {
final total = weights.reduce((a, b) => a + b);
var roll = _rnd.nextDouble() * total;
for (var i = 0; i < arr.length; i++) {
roll -= weights[i];
if (roll <= 0) return arr[i];
}
return arr.last;
}