Algorithm 235: Random permutation