Anywhere that you can go fishing. Especially by using the Old Rod.
almost everywhere
You can get a Magikarp by fishing in any body of water with an Old Rod
level 20
Either evolve Magikarp or catch him at Lake Rage.
magikarp will evolve at lvl 20 to a gyarados
A Magikarp, but I don't know if it is in the Johto region.
no, only evolving a magikarp it will be blue
You could either: A. Trade one over from Heart Gold or Soul Silver (Find it in the Lake of Rage) or B. Find a shiny Magikarp and evolve it
Gyarados do not evolve. Magikarp evolve into Gyarados at lvl. 20
use a repel or at night use the radio (soul silver/ heart gold) on lullaby's
yes... though it is very rare to find one The red Gyarados is part of the game, but I did catch a Shiny Magikarp in Slowpoke Well.
Yes, you technically CAN get a shiny magikarp but its not automatic. You have the same chances of getting a shiny magikarp as you do a shiny Pokemon from any other kind of egg. The parents don't automatically make it a shiny magikarp.