I wanted to write this as a sequel to "What is a property?" where I would talk about how Property-Based Testing libraries generate random structures, don't worry, I'll still do that! But I realized that without talking about randomness in computers, the writing would be incomplete. So the first part of this article will go into a core problem that we consider "solved" in PBT, which is designing good random number generators, with the latter part talking about implementing complex random data generators on top of such RNGs.