To get a Lucky Egg in Pokemon HeartGold (This goes for Pokemon SoulSilver as well), you must find a Chansey in the wild that is holding it. Chanseys are hard to find in Pokemon HeartGold and SoulSilver so you'll have to wait and listen to Professor Oak's Radio Show to know if it is in swarm (Meaning you can find a lot of them on the certain route Oak's Show told you about). To know for sure if a Chansey is holding a Lucky Egg, have a Pokemon that knows the Ability "Frisk", such as a Stantler. Put it into the first slot in your party. When you go into battle and encounter a Chansey, "Frisk" will tell you what it is holding. If nothing happens, then that means Chansey isn't holding anything.
Chat with our AI personalities
Transfer in a pokémon that is holding a Lucky Egg.
Wild Chansey
You get an egg from Professor Elm's assistant from any Poke Mart.
Players can only get the lucky egg in Pokemon Pearl from the wild Chanseys. Lucky eggs are very difficult to find in the game.
Deposit one of your Pokemon and you may get the egg