You can manually put something together, starting for instance with the addresses and private keys exported from a new Electrum wallet. I sometimes use command line qrencode. If you use it offline and air-gapped and verify the QR-codes, you should be safe. But doing that 20 times is painstaking and it's easy to make a mistake.
Your suggestion is a great option and the best way to put the security consciousness into the practise from the start. So, I get the Electrum wallet installed and start preparing the 20 wallets manually. I downloaded the Electron to my desktop to have the wallet on my local network.
But as I was checking the detail of each adress I generated through Electrum, I saw that type of script is on "p2pkh" and not p2wpkh which is the Bech32. And on the aspect of the interaction to Ligthning network it stated that - Not available for this wallet, "No disponible para esta monedero."
How do I adjust the setting to permit payment from LN and to interact with my LND Wallet?
Side question to broaden my understanding:
The Electrum wallet I installed, by default created 30 adresses and each adresses has unique public key and private keys. There is also this Derivation Path "Rutas de Derivación" that starts as : m/0/0 for 1st adress and run up to : m/0/29 for the the last one.
I thought that the wallet has one public key and many (30 ) adresses to keep the privacy of the owner. I just hope to clear this so that 30 adresses will not end up been to same wallet and adress after giving it out to various users...
Is it normal that the adress assigned to each public key to be one to one?