a framework for making random objects in algebraic geometry