use clojure.data.generators to allow testing with restartable random number sequences