If you don’t want to invest in a hardware wallet or if the cryptocurrency of interest cannot be stored on any hardware wallet, the key pair can be generated on an ordinary device without having it connected to the internet. This can be done in several ways (and several guides can be found by doing a quick search), but this a low-tech approach:
If you for example have a smart phone you don’t use, key pairs can be generated on the device. The software/algorithm for generating the keys can be found in different ways. For generating key pairs to Monero you can for example download the mobile wallet Monerujo (to Android) or go the site moneroaddress.org. When you have access to the software/algorithm needed to generate the keys, DISCONNECT THE DEVICE FROM THE INTERNET (preferably not having a SIM card in, and shut down the the wifi of place you’re at). In this way, even if your device is infected with malware it can’t extract the keys. Generate the keys, write them down on a piece of paper and take a screenshot with the device, turn off the device, and KEEP IT TURNED OFF unless you completely wipe the device. Now, funds can be sent to the address (the public key) and the private key should be stored offline. This is called a “paper wallet”.
For convenience, the public key can be extracted from the device to other devices with an internet connection by reading the QR-code (which SHOULD NOT BE DONE WITH PRIVATE KEY. Remember: you want to keep it off any medium connected to the internet), while the private key is preferably saved by writing down the mnemonic seed by hand. The view key can be used to make sure that the funds arrive to the wallet.
This approach makes it harder to spend parts of the sum in the wallet. The simplest way of handling it is to have several wallets with portions of the money spread out over, and to use the whole amount in the wallet when you want to spend from it. To spend money from them, just recreate them from the mnemonic seed in one of the wallets mentioned on this site.