Whenever I'm asked for a 4 digit PIN: `echo $[RANDOM%10000]`
for i in $(seq 1000000); do
echo $[RANDOM%10000];
done | sort -n | uniq -c | sort -rn | gnuplot -e "set terminal dumb; set xtics 1000; plot '< cat' using 0:1 with boxes"Compare to the version that discards values over 3e4:
for i in $(seq 1000000); do x=$((RANDOM)); while test $x -gt 30000;do x=$((RANDOM)); done; echo $((x%10000)); done |sort|uniq -c |sort -rn |gnuplot -e "set terminal dumb; set xtics 100; plot '<cat'"
Or the version that uses the 32-bit SRANDOM, which reduces the bias by a factor of 2**17: for i in $(seq 1000000); do echo $((SRANDOM%10000)); done | sort -n | uniq -c | sort -rn |gnuplot -e "set terminal dumb; set xtics 100; plot '<cat'"