You can possibly win one in the Lillycove Lotto by simply matching the last 3 digits with an ID # on a Poke in your PC or party. If you trade alot, this is relatively easy, however if you dont much or at all, it is extremely rare to match 3.
A tip when doing this.... if you saved your game the night before, upon starting your game the next day ask the clerk to check your numbers... if you dont win, reset and try again... As long as the save was from the previous day, your game will reset the winning #'s upon every reset. I genereally do this to get PP Ups eailsy, but it can also be done to obtain the EXP Share or Master Ball (only if you are lucky enough to match all 5 digits)
If you are at Pre-re for HP set, and I manage to go as well, I will gladly give you an extra EXP Share, I have a ton of them (between 20 & 30 at least) in exchange for a Pokemon with your Trainer ID #. I collect them, and have well over 120 different trainer ID #'s (which is how I got so many EXP shares to begin with)