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)