As far as I can tell, this test doesn't at all guarantee that the sequence is random. My *Devil's Advocate* suggestion proves that quite effectively, I think.

As for testing randomness: yes, that's hard... My standard way out of that would be to inject a [Random](http://msdn.microsoft.com/en-us/library/system.random.aspx) instance into the SUT. Contrary to many other BCL classes, the `Random` class is eminently mockable, with all important methods being `virtual`.

Now, I'm not saying that we should do that here, because at this point I think that would be too disruptive a change. Besides, the SUT code looks fine, and it has undergone a proper review, so I'd much rather accept it as is.

It's just that this particular test doesn't really test the right thing, so I'd rather prefer that it wasn't here.