more monadic randoms, reuse code