Two small generators, /v1/enum and /v1/object: a weighted draw over values, or over whole JSON objects. choices={"gold":1,"silver":4,"bronze":15} and you get the skew you asked for.
The genuinely unusual bit: under edge, the distribution inverts. Your rarest tier becomes the most likely, and a member with weight zero shows up at all.
Which means you can finally test the cohort your seed data never produces enough of. You have four gold-tier customers in staging and you have never once tested the gold-tier path.