Fisher-Yates
Produced an unbiased permutation: every permutation is equally likely.
Pseudocode:
Algorithm 2 Fisher-Yates shuffle
Require: An array A of length n
1:for i=n−1 to 1 do
2:j← random integer such that 0≤j≤i
3:swap A[i] and A[j]
4:end for
Implementation of modern Fisher-Yates algorithm