It shouldn’t be that hard to make an algorithm that analyzes what characters and covers are currently held in a player’s roster. As well as how long it’s been since a particular character has been awarded a cover (i.e. if a character has been sitting around forever without getting a new cover). Then the odds of what covers a player gets awarded could be skewed in line with that data.
The odds could still be long enough that a player would have a sense of challenge, yet be adjusted so that people get more awards based on what they actually need.
Another option is that roster level could be analyzed, too, increasing the odds for awarding covers for 1* characters until all of them are fully covered, then 2* characters, etc., as a player builds their roster and transitions up to higher starred characters.
I suggested this exact thing in a thread complaining about leg tokens giving the same 4* covers repeatedly. So for that you get an upvote - I suggest other readers do the same
Don’t make us keep 1 and 2 stars there are way too many characters and roster slots are way too expensive to do that. Just make the algorithm determine the cover after the rarity drops. For example: you pull a three star cover and are missing X three star covers you now have whatever chance higher to pull those covers.