Por que essa é a solução correta? A questão claramente solicita os menos resistentes, então uma alternativa mais adequada seria até dois ou no máximo três (considerando que só há cinco elementos no array) dos pokemóns com menor resistência. Minha sugestão seria algo como:
var pokemons = new[]
{
new { Nome = "Pidgey", HP = 14 },
new { Nome = "Ratata", HP = 21 },
new { Nome = "Pidgeotto", HP = 52 },
new { Nome = "Zubat", HP = 25 },
new { Nome = "Pikachu", HP = 33 }
};
var pokemon = pokemons
.OrderByDescending(p => p.HP)
.Take(2);
P.S.: Parabéns pelo exemplo ótimo de atividade, acredito que 80% dos devs devem curtir Pokémon ahusasu