Probably Silver and Wally are my two favourites.
Wally is unique in the first four generations in that he doesn't look down on you, but rather up to you, which is a nice change. Could have done with him appearing a bit more in Emerald but hey, at least he fully evolves his first pokémon, and May / Brendan is possibly the worst of the smug rivals as someone who is never demonstrably good at any aspect of pokémon.
Silver has the most actual character (in HeartGold / SoulSilver at least) as well as pretty solid taste in pokémon, a good design and great battle music too.
I feel like Blue is the weakest of the first 4 generations where you only really had one rival - he just seems too stuck up like yeah, you're good at catching pokémon because your grandad does but you keep getting your ass handed to you on a Charizard-toasted platter by Red and never once learn any humility? Barry's better than him in that sense because he does have a little bit of growth (it also makes sense that the son of a Frontier Brain would become one of the most powerful trainers ever, by levels at least).
I stopped playing at Gen V and I definitely think they have the worst rivals.