Jeff,

Other than being a bit inefficient (you're using an O(n^2) shuffle algorithm where a simple O(n) algorithm could be substituted), the code looks good. You might post an example output for those of us who don't run Windows (or have Kylix), though.

More to the point, it has long been my expert opinion that there is something broken in the Empeg's shuffle code. I've seen too many cases like the one Tony described to chalk it up to the normal pockets of order in truly random data.

--John