That makes sense. The original code (both with and without replacement) would always return the original counts vector in this case. If you want, I can update the "with replacement" behavior, but it'll make the two methods slightly inconsistent for this special case.

I suppose "with replacement" could allow for `n` that are larger than `counts.sum()` too. Even though it won't be strictly subsampling at that point, should we allow for this case when `replace=True`?