greycat 1321043026 learn rand() { local max=$((32768 / $1 * $1)); while (( (r=$RANDOM) >= max )); do :; done; r=$(( r % $1 )); } ## Returns random number from 0 to ($1-1) in globar var 'r'. koala_man 1393627238 forget koala_man 1393627266 learn rand() { local max=$((32768 / $1 * $1)) r; while (( (r=$RANDOM) >= max )); do :; done; echo $(( r % $1 )); } ## Returns unbiased random number from 0 to ($1-1) inclusive, $1 <= 32768 llua 1501254930 forget llua 1501255005 learn rand() { local max=$((32768 / $1 * $1)) r; while (( (r=$RANDOM) >= max )); do :; done; printf '%s\n' "$(( r % $1 ))"; } ## Returns unbiased random number from 0 to ($1-1) inclusive, $1 <= 32768