My main argument is that Pokémon started as the core series games. Pikachu doesn’t represent them very well, except for Pokémon Yellow Version. Pikachu only became important when the Pokémon anime started airing. The first episode was aired on April Fools day, so Pikachu’s status as mascot was probably just some kind of prank.
The mascot of Mario is Mario. The mascot of The Legend of Zelda is Link. The mascot of Kirby is Kirby. The mascot of Donkey Kong is Donkey Kong. In case you don’t see a pattern, the mascots for all these games are one of their playable characters. However, Red has no superpowers, so it would make more sense for the mascot to be a Pokémon. The closest that a Pokémon could ever get to being a playable character would probably be the starter Pokémon, since they’re both titular and obtained at the beginning of each game. Thus, I think it would make sense if all three Kanto starters could be mascots. Of course, they’d have to be roughly balanced in terms of both usefulness and popularity.
If some Pokémon were to permanently be a mascot, it should represent some concept that doesn’t change. Concepts that never become less significant are battling and evolution. No matter what you’re doing with Pokémon, whether you’re playing a core series game, a spinoff game, the Trading Card Game, watching the TV show, or reading one of the manga series, both battling and evolution are very important and intriguing concepts. A good mascot to represent the former would be Magikarp. It’s one of the weakest Pokémon, but becomes better at battling through battling. A good mascot to represent the latter would be Eevee, which is literally the evolution Pokémon.