+
+shuffle(deck)
+ char deck[];
+{
+ int i, ic, k, temp;
+ unsigned random;
+ static long seed = 123;
+
+ for(i=0;i<ROTORSZ;i++) {
+ seed = 5*seed + buf[i%13];
+ random = seed % 65521;
+ k = ROTORSZ-1 - i;
+ ic = (random&MASK)%(k+1);
+ temp = deck[k];
+ deck[k] = deck[ic];
+ deck[ic] = temp;
+ }
+}