Contrary to what most people think, bitcoin is not 100% anonymous. It is pseudonym.
Now, let us say you bought bitcoins from a exchange. The exchange has your government issued ID. Then you send your bitcoins to a offline wallet.
Now, the blockchain has a record of the exchange sending you bitcoins to your wallet, and the exchange has a record of what offline wallet is linked to you.
How do you effectively separate this link?
My theory is that you can send your bitcoins from your offline wallet to a bitcoin casino site, then withdraw your balance to another wallet.
Would that remove all the links to your bitcoins from your ID/make it impossible to trace back to you?