or you can create an offline paper wallet on an offline computer and then print it a few times and keep the private key copies safe somewhere in your safe or something like that
The answer is beyond a doubt, generating a privkey on a computer that has never touched the internet and never will. Then you send bitcoin to its public address. Unless BTC get cracked by a super mega computer, your bitcoin will be absolutely safe. A way of doing this is using the wallet armory. A way that doesn't deal with any third party is called the aforementioned paper wallet, but its not very convenient to use.
https://blockchain.info/wallet/paper-tutorialhttps://bitcoinarmory.com/