A common problem in the traditional web2 art and trading card world is the transparency of randomness and scarcity.
If you buy a trading card, like a Pokémon card for example, you have no way of knowing how rare it really is without talking to the company that printed it. There is a centralized component to the scarcity of the card. They could have printed ...
Assuming that your initial "deck of cards" is [0, 1, ..., N-1], the following should roughly work. I've made basically no attempt to compile or check this, but the underlying algorithm should be sound.
Roughly, the approach is this:
You start with a sorted "deck of cards", [0, ..., N-1]. This deck is implicit.
To pick a random card, you:
well you have to put the values of the links and vrf, you can find the addresses here based on the network you are using:
Remember to fund your contract with links before running it