There are three main steps to get from private -> address:
Create a random private key (64 (hex) characters / 256 bits / 32 bytes)
Derive the public key from this private key (128 (hex) characters / 512 bits / 64 bytes)
Derive the address from this public key. (40 (hex) characters / 160 bits / 20 bytes)
Mnemonic phrases are generated from 128 bits (12 words) to 256 bits (24 words) of entropy. The probability to guess a mnemonic phrase is 2^-128 to 2^-256, which is very small.
Use libraries
Read more
From https://ethereum.stackexchange.com/questions/3542/how-are-ethereum-addresses-generated
From https://ethereum.stackexchange.com/questions/84431/what-are-the-odds-of-getting-same-address-or-private-key-or-12-24-set-of-mnemoni