There exists [`np.random.choice`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html#numpy.random.choice), which would allow sampling with/without replacement according to some probabilities. Wrapping that would give a consistent behaviour, but I don't know if it's the one we want :sweat: