Where are all the rare candys on Pokemon heartgold?

you can buy them at the pokeathlon dome for 2000 athlete points.