The random-number generation facilities we provide are based on rand, which is known to be a low-quality random source. We should switch to using C++11's <random> library to generate random numbers.
(Rationale: In prototyping an assignment that involves generating random objects, the resulting distributions when outcomes depend on correlations between calls to randomInteger are non-uniform. Switching to using std::mt19937 and uniform_int_distribution fixed the issue.