Here's a description of a very solid one: http://www.briggsoft.com/docs/pmavens/Technical_Shuffling.ht...
Here's an example of what can happen if you do it wrong: http://www.cigital.com/papers/download/developer_gambling.ph...