simplify code by doing the shuffle at the end (and make it faster when the input size is less than the reservoir size)
update readme