\ http://e...content-available-to-author-only...a.com/sphinx/article-xorshift.html
variable seed
utime seed !
: random ( -- x ) \ return a 32-bit random number x
seed @
dup 13 lshift xor
dup 17 rshift xor
dup 5 lshift xor
dup seed !
;
: setseed ( x -- ) \ seed the RNG with x
dup 0= or \ map 0 to -1
seed !
;
random 10 mod 1+ . \ random number [1, 10]
XCBodHRwOi8vZS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uYS5jb20vc3BoaW54L2FydGljbGUteG9yc2hpZnQuaHRtbAoKdmFyaWFibGUgc2VlZAp1dGltZSBzZWVkICEKCjogcmFuZG9tICAgICggLS0geCApICAJXCByZXR1cm4gYSAzMi1iaXQgcmFuZG9tIG51bWJlciB4CiAgICBzZWVkIEAKICAgIGR1cCAxMyBsc2hpZnQgeG9yCiAgICBkdXAgMTcgcnNoaWZ0IHhvcgogICAgZHVwIDUgIGxzaGlmdCB4b3IKICAgIGR1cCBzZWVkICEKOwoKOiBzZXRzZWVkICAgKCB4IC0tICkgIAlcIHNlZWQgdGhlIFJORyB3aXRoIHgKICAgIGR1cCAwPSBvciAgICAgICAgIAlcIG1hcCAwIHRvIC0xCiAgICBzZWVkICEKOwoKcmFuZG9tIDEwIG1vZCAxKyAuIAkJXCByYW5kb20gbnVtYmVyIFsxLCAxMF0K