implemented KnuthShuffle with comments and javadocs