I can't reproduce this problem. What pike version, and what $TERM?
In a sidenote, why doesn't
| > random(10000000000000000); | (3) Result: 694383321
work as expected, when
| > random(100000000000000000000000000000); | (2) Result: 1637481850962819326860743609
does?
I expect it's because different code is used depending on whether the argument is a bignum or not. It seems like the code generating non-bignum random numbers is limited to generating 32 bits of random data (a bug).