Java - 52 ---- <!-- language: lang-java --> int m=0;int rand7(){return(m=m*5&-1>>>1|rand5())%7;} Distribution test: `[1000915, 999689, 999169, 998227, 1001653, 1000419, 999928]` Algorithm: * Keep a global variable * multiply by 5, so there get 5 places free at the least significant end * Truncate the sign bit to make it positive (not necessary if unsigned numbers were supported) * Modulo 7 is the answer > The numbers are not mutually uncorrelated anymore.