Well, if you mean Heartgold then you can only get it from trading from Pokemon Diamond, Pearl, or Platinum games
( : ^ (
you can catch spinarak in route 30
you need to catch a gold magikarp(shiny) by fishing or breeding then level it to 20. Or you can catch a red gyarados(shiny) by random. The chance to have it red are i in about 8000
in the lake of rage you kan have him in shiny or you catch a magikarp and train him to lv. 20
You either trade from soul silver or heart gold, use a action replay to make encounters shiny, catch a shiny magikarp legit(which might take a while)
FROM A FISHERMAN. Who wants you to catch a magikarp and trade it to him for the old rod
Literally anywhere you see water. Use a fishing rod to catch one. There all over the place! XD -Chii
If you are referring to Shiny Pokémon, you catch it just like any Pokemon throw a pokeball at. The chance of finding a shiny Pokémon is 1/8192.
shiny
In gold/ silver/ crystal at the lake, in firered/leafgreen, ruby/saphirre/emerald, diamond/pearl/platinum you have to catch a eceedingly rare shiny magikarp and train it.
anywhere you can catch a regular kricketune. But it is very hard. the logistics of finding a shiny Pokemon is 1 out of 365329. sources: developer and head administrator of serebii.net
It's a pikachu, i don't know if you can catch it, haven't found a way myself
im not sure but i think u can by attaking the same Pokemon over and over again