Why doesn't OpenZeppelin ERC721 contain setTokenURI?

Yes, normally you would want the distribution/sale to be randomized so that it can't be gamed by people who know beforehand which are the rare ones.

There is a relevant conversation about that here:

1 Like