Scrap the challenge system altogether. This would in turn, erase the need for challenge swaps. Replace them with drip-fed credits for the store. Maybe 50 credits for each challenge swap in the battle pass.
Give 50 base exp per match played. Give exp based on match performance. They could even make it as simple as Match Score divided by 10. In my worst games, I’d say I get a match score of 750, and in my best games, 2000+. That gives a range of 125-250+ exp per game. If that makes progression too fast (one rank per 6 games or so), they could bump up the exp needed to level up to somewhere around 1500.
Then you’d have no more players running around just trying to complete their challenges, which ruins the experience for players trying to actually win the game. No more players quitting because their only challenge left is “Capture 3 flags in PVP matches” and they keep getting Oddball.
Playing the objective scores you exp. Getting kills scores you exp. The better you do in a match, the more exp you get. The “RNG” used to determine matches would no longer hamper your ability to level up the battle pass.
Skill-based progression is the way to go. This whole challenge system is bad for the game and the player in every way imaginable.