At 53:07 or so. Is there a bug in the code? You aren't guaranteed to fill the list if the data_size > sample_size. I think you need to fill all the samples, then start sampling using random numbers. This manifests when the sample size is only a bit smaller than the overall data size. Sometimes the sample list doesn't fill up but if data is sufficiently large the chance a sample won't be filled trends towards 0.
Yes, I found that too. The fix is easy: until the sample set is full, add items as they come in (as explained in words, but the code does not do that part).