using std::random instead of boost::random