use 'slightly' more optimal dart:math random RNG