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
use a repel or at night use the radio (soul silver/ heart gold) on lullaby's
Gyarados do not evolve. Magikarp evolve into Gyarados at lvl. 20
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.