It depends on very, very good luck to get a shiny Pokémon. You can
find shiny Pokémon in the wild, in eggs, and in the battle tower,
which is basically everyplace you can catch a Pokémon save for the
Battle Tower in which you won't be able to catch the shinys there.
Needless to say, you wont be very lucky if a shiny ends up there.
People have said that you can also meet a shiny when in your first
battle against the wild Poochyena and Wally's Ralts as well.
Basically, like I said, it revolves around how lucky you are. Now the
bad thing is that the odds of finding a shiny Pokémon in the wild are
1 in 8,192 battles...all the time, meaning after 8,191 battles it'll
still be 1 in 8,192 and not a dead cert that you will get one i.e. not
1 in 1 battles. If you already have a shiny Pokémon and think you'll
have a higher chance of getting another shiny if you breed with it,
think again. It's still going to have the same odds.
So finding a shiny Pokemon is very rare in the wild unless you get really luck. However some Pokemon are automatically shiny in-game such as the red Gyarados of SS/HG.
However there are ways of breeding them easier such as the famous Masuda method which requires you to breed 2 Pokemon of a different nationality. When you do this, the chance of breeding a shiny Pokemon gets increased from 1 in 8,192 to 1 in 2,048. In generation V this is even increased to 1 in 8,192 to 1 in 1,365.3.
Another method of finding shiny Pokemon is to wield the shiny charm which you can get by completing the National Dex (Black/White 2 exclusive)
Source