add knuth shuffle