:: ((random-integer)) ( bits obj -- n required-bits ) obj random-32* 32 bits 32 - [ dup 0 > ] [ [ 32 shift obj random-32* + ] [ 32 + ] [ 32 - ] tri* ] while drop ;