--- from: http://rosettacode.org/wiki/Knuth_shuffle note: Classic CS problems and programs