Paper wallets used to be the safest way. But as of late there are many rumors that some of them actually do not generate random keys but can steal your coins (even when generated offline). So sites like bitcoinpaperwallet are a nono.
If you want it for free, you can find many key generators on github. You’ll need some programming skills to check them. And before comitting to one test that the keys are generated correctly. Even I have made one in Java at https://github.com/Johanpmeert/GeneratePrivateBitcoinKey
It uses a Intel DRNG to generate 32 random bytes. Or you can bypass this by entering the random bytes yourself or by taking any picture and taking the SHA256 hash. That’ll be random enough.
The safest way is buying a ledger or Trezor direct from the manufacturers website.
If you have a paper wallet, that’s all you need. Private and bitcoin address on the paper. No need to store anything but that. You can verify the amount on it by entering the bitcoin address on any blockchain explorer. If you have a QR code that is even easier, there’s many apps that scan that and give you the balance.