Fight it or catch it. I recomend catching it.
Lake of Rage in Soulsilver and Heartgold
It's more a Red Gyrados, but in the Lake of Rage.
Actually there is no red Gyrados. I mean there is, but a red Gyrados is a shiny Gyrados.
In Heartgold and Soulsilver, Red is Ash Ketchum(also you can find him on the top of Mt. Silver. He has Pikachu, Charizard, Blastoise, Venusaur, Laprus, and (I am not sure on the last one, but I think it is either Gyrados or Dragonite). It is Snorlax.
red gyarados is nowhere you need to find a shiny magickarp then train it to a level 20. For SoulSilver/ heartgold Version: The red gyrados is in the lake of rage. Go north from Mohogany Town ( IN Johto) make sure that you bring the Pokemon that knows HM surf.
to get a red gyrados you have 1% of finding a red gyrados and you have to use a super rod to find a red gyrados.
red gyrados is just shiney gyrados use the shiney code and find gyrados
Red Gyarados should be catchable in heartgold/soulsilver like in the original gold/silver series. Itt should be caught in the lake most northern of the johto region. hope this helps you. =)
Go to the Lake of Rage in Johto(When it isn't raining) go to the upper right, then surf to the red Gyrados who will be looking around for some reason.
All games except Silver Gold Crystal Heartgold and Soulsilver, you have to have pure luck. But with Heartgold Soulsilver, go to the Lake of Rage which is way above Mahogany Town.
After catching or defeating the red Gyrados at the Lake of Rage, pick up the red scale left behind and take it to Mr. Pokemon, who will trade it for the Exp. Share.
The Red Gyrados drops it. If you already fought the Red Gyrados, you should already find it.