Random shuffle may be biased, even though built-in library is used or it is implemented correctly by one's own based on Fisher-Yates method. In fact, bias comes from the random number generators which have its own limitation.

I am a python guy, so here I made an excerpt from Python 2.7 doc: `random.shuffle(x[, random])`

Shuffle the sequence x in place. The optional argument random is a 0-argument function returning a random float in [0.0, 1.0); by default, this is the function `random()`

. **Note that for even rather small len(x), the total number of permutations of x is larger than the period of most random number generators; this implies that most permutations of a long sequence can never be generated.**

Disclaimer: no disrespect to Python people, nor any other language/package designers, as we totally understand the issue here.