weaken the version constraint for base
Support arbitrary random generator
Documentation