on the one end: purely random distribution (lots of games work like this)
on the other end: entirely predefined distribution (lots of games work like this)
in the middle, lots of room for various hybrid approaches (lots of games work like this)
the point is: there is no one right way to do it, and only YOU know what will “feel right” for your game.
maybe a weighted distribution, or heuristics based on recently-generated items, or etc
a common solution is: a random distribution, but of longer predefined segments (lots of games work like this)