When you generate a wallet, then the wallet contains by default 100 bitcoin addresses. This is good for many reasons, e.g. old backups of your wallet might be able to recover all loses in case of a harddrive failure, etc.
The "privacy reason" is that someone looking at the blockchain can't see which bitcoin go to the receiver and which is the change of the inputs.
And last but not least, the "security reason" is because every bitcoin addresses is just a hash of a public key, so someone with a working quantum computer can't attack the public key (as he can only see a hash of the key, not the key itself). But whenever you need to spend bitcoins, you need to reveal the public key, so all addresses that have previously spend bitcoins will be "vulnerable" (but new addresses wont).
possible duplicate of Why does Bitcoin send the "change" to a different address?
– Stephen Gornick – 2013-04-29T02:50:26.013Not a duplicate: he didn't ask "why", he asked "when"(does it do that), and he asked "if"(will it change in future). – o0'. – 2013-04-29T08:53:13.517