Sounds great :)

Are you sure you don't need mutual exclusion for both reads and writes? (Otherwise you might return the same number twice before the set is depleted.)

If that is the case, putting a `lock` around the code of this method should also make the new test passing and you will avoid doing all the `IDisposable` work that Code Analysis requires (because of the `ReaderWriterLockSlim` class).