Things You'll Need
Instructions
Play through the game's story until you reach the Lake of Rage, north of Mahogany Town then safe the game. You must have plenty of Pokeballs, Great Balls, or Ultra Balls in stock, because you need to catch the red Gyarados. You must have a Pokemon with the HM move Surf in your party as well.
Surf in the Lake of Rage, approach the red Gyarados, and press the action button to begin battle with the Pokemon. Weaken it using attack moves, but don't knock it out. Catch it using a Pokeball, Great Ball, or Ultra Ball from the PACK option. It may take multiple attempts to capture the red Gyarados.
Put red Gyarados in your party and bring him to the "Move Deleter" in Blackthorn City. Erase all of Gyarados' moves except for one that doesn't do damage and exists in the Red, Blue, or Yellow version Pokemon games (e.g. Leer).
Go to the second floor of any Pokemon Center. Connect the game-link cable to another Game Boy with Pokemon Red or Blue and trade the red Gyarados to the Red, Blue, or Yellow version.
Teach the red Gyarados Mimic (TM 31). TM 31 is available in Saffron City if you give the Copycat a Pokedoll. Move the red Gyarados to the first position in your party.
Go to any Pokemon Mart and stock up on Pokeballs, Great Balls, or Ultra Balls.
Find a wild Ditto in the tall grass east of Fuchsia City on Route 15. Do not engage any other Pokemon.
Fight the wild Ditto using your red Gyarados. Use Mimic to copy Ditto's transform. Ditto will transform into a red Gyarados. Use the transform power on Ditto, and Ditto will either use mimic or transform. After Ditto uses transform a second time, catch it.
Add Ditto to your party and trade it back to Pokemon Crystal. It will be shiny.
Take Ditto to the daycare center south of Goldenrod City. Put him in with any other Pokemon. Walk around and check in with the daycare man regularly. When you get an egg from him, it has a 1 in 64 chance of being a shiny version of the Pokemon you left with Ditto.
Walk around some more until the egg hatches. The number of steps needed to hatch a Pokemon egg are different for each Pokemon.