I think you do not get my point:

example:
subject 1 40% to be chosen
subject 2 40% to be chosen
subject 3 10% to be chosen

this will give the following accumulation: `[0.4, 0.8, 1.0]`

now we throw `0.5` and `0.7` resulting in subject 2 and subject 3 being chosen (even though subject 3 only had 20% chance, after subject 2 is chosen, it has 60% chance to be chosen)