Problem
Describe an efficient way of putting an array list representing a deck of n cards into random order. You may use a function, randomInteger(n), which returns a random number between 0 and n - 1, inclusive. Your method should guarantee that every possible ordering is equally likely. What is the running time of your method?