úÎ , ¼portable experimental=Shuffle a list randomly. The method is based on Oleg Kiselyov's  perfect shuffle  0http://okmij.org/ftp/Haskell/perfect-shuffle.txt, K but much simpler because it uses existing data structures. The efficiency ' of both methods should be comparable. Complexity: O(n * log n) 3Shuffle a sequence randomly. This is being used by , ' so it logically uses the same method. Complexity: O(n * log n) 4Randomly choose and extract an element from a list. Complexity: O(n) 8Randomly choose and extract an element from a sequence. Complexity: O(log n) %Select a random element from a list. Complexity: O(n). )Select a random element from a sequence. Complexity: O(log n).  random-extras-0.1Control.Monad.Random.Extrasshuffle shuffleSeq choiceExtractchoiceExtractSeqchoice choiceSeqextract extractSeq