This thought just came to me dealing with something else, but I think it could be applied to this game.
What if after the RNG did it’s job, there was a check to see if the player ended that cover. So if a player has 5 of a single ability equipped already, the RGN kicks in again. Probability of rarity and such can remain this way and new characters can be added without have to remove older characters. This keeps it fair for new players and veterans alike.
Say the RGN finds a blue 3* Spider-Man cover for me. Since I already have. 5 of them, it then finds a blue 1* Hawkeye and gives that to me since I do not own that character.
It wouldn’t mean everyone suddenly gets only 3* & 4* covers now, but if you need one, you might be more likely to find it. There should also be a limit on how many re-spins the RNG does, like you will always get the second cover it finds no mTter what. Obviously I’m thinking out loud and won’t put much effort I to this without being employed by D3 but something I think could work.