I hate to disappoint you, but you can't convert Game Shark codes to Game Genie, or vice versa. The reason is this:
Game Shark codes modify the game's memory. This is why you can put in a code for the Pokemon in the first slot to have Maximum Stat Exp, then switch around your pokemon to allow your entire party to receive a "dose" of the code.
Game Genie codes directly modify the game's ROM image itself. It would be equivalent to opening the ROM in a hex editor and making the changes yourself, except that the changes are temporary.
Hence, it is impossible to directly convert a code from Game Genie to Game Shark, or vice versa.
HOWEVER, it IS possible to totally hack a new code for Game Genie to create a similar effect. For example, an "Infinite Lives" code for Game Genie changes the routine where the number of lives is subtracted. What it does is forces the game to subtract 0 lives instead of 1, or skip the subtraction command entirely. Now, if you wanted a code to get Serebi, you would have to hack the ROM open and find out where the data for random pokemon battles are stored, and change one of the random encounters to Serebi. This was done on Pokemon Red/Blue, so it is very possible for Gold/Silver, but I have no idea how to go about doing so, because I don't know diddly squat about assembler coding. That would be better left in the hands of someone who has a lot of experience with this.
Kamek, Master Magikoopa