I've been using some software and hardware wallets for years. Like most of you I am familiar with mnemonic seed phrases used in wallet creation/restoration operations.
Last week I decided to go a bit deeper on the design of these words. I worked with 24 word phrases which is basically 23+checksum word to validate the integrity of the phrase.
You can find the code I wrote for calculating checksum in following github repository :
https://github.com/hnzr/bip39_checksum
Checksum calculation is the first part of the code.
On top of checksum calculation added the functionality for finding any missing word if checksum is given.
You can use it just like me. You can also use it for generating your own mnemonic seed phrase. If you will use it in real life. Use it on an OFFLINE computer with temporary OS with your own security risk.
You can follow the instructions in the following link to create seed phrase with rolling dice and then use the python code to fix the 24th word with correct one.
https://en.bitcoin.se/articles/create-your-own-wallet-seed-using-regular-dice
You can even add some additional randomness by changing some of the words with alternatives, using the brute-force function.