Refactored to remove shuffle on array to create and reuse existing Random instances ( http://stackoverflow.com/a/2773866/153797 ).