Safest way of long term holding I am considering holding Bitcoin for the long term. I have learned a few basics about the blockchain and BTC mechanisms, but still unable to find a complete guide on how to safely store bitcoin.

How to generate a private key safely? Online tools are obviously undesirable as they might keep a back door on all keys generated. Similar reason for any library or packages even they operate offline (I cannot check if these keys generated are in fact following some predetermined sequence).
I can use a random number generator on a offline PC. But I am not a real 'hacker' and have concerns on whether any programming language can produce truly random numbers that cannot be reproduced (or say predicted) on another PC.
Currently, I can only think of throwing dice in my room for key generating but that cannot scale.

I do not want to use any 3rd party software as wallet. Suppose I just store my private key on a piece of paper and later transfer coins into it using exchanges. Would that be a valid transaction and allows me later to spend these coins?  Is there anything else I need to store together with the private key (like the hashed transaction number in transaction_input in the blockchain?)  I really want to avoid 3rd party software because it might be obsolete in the future, get wiped out, and cannot be backed up on a single paper.


Any advice?
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.