Simple answer
Generally, the chance of finding 2 shiny Pokémon in succession is (1/4096)^2, which is 1 in 16,777,216, or about 0.000006%. This is found by just multiplying the rates of two independent events together.
With the shiny charm, it's (1/1024)^2 = 1 in 1,048,576, or about 0.000024%.
Detailed answer
The chance of the specific scenario of finding 2 shiny female Magikarp in Wild Zone 2 at night is a bit more complicated.
Firstly, there are 8 Magikarp in Wild Zone 2 at night (11 during daytime).
The chance of a shiny female is the shiny rate multiplied by the female rate: (1/4096)(1/2) = 1/8192.
The chance of a Magikarp not being shiny is 4095/4096.
You got 2 shiny female Magikarp and 6 non-shiny Magikarp.
Multiplying all the rates together, we get (1/8192)^(2)(4095/4096)^(6).
However, we need to account for the fact that there are multiple ways to spawn 2 shinies out of a group of 8 Pokémon. For example, if you imagine that each Magikarp is numbered as #1, #2, and so on, you could be in a situation where #1 and #3 were the shiny ones, or a different situation where it was #6 and #7, or any other pair. Since we don't care which ones were shiny, just that 2 of them were, all of these situations are valid possibilities.
There are (8!)/((2!)(6!)) = 28 ways your situation can happen. I won't get into it here but this is a good website to read if you want to know why (this is a combination without repetition).
Our final result is
(1/8192)^(2)(4095/4096)^(6)(28) =
33008172222147618234375/79228162514264337593543950336
or approximately 0.00004%.
With the shiny charm, it's about 0.0007%.
So your specific situation turns out to be a bit more likely than the simple answer, because it's accounting for the fact that you encountered a total of 8 Magikarp instead of just the 2 shiny ones, but it's still pretty unlikely. Nice find!
Source: WolframAlpha