shuffledIterator - iterate over list in random order (but each exactly once); efficient both when requesting few or many elements