Is there any way I can get a specific Ethereum address of my choice (considering it's not owned by anyone yet)? (Might be related to how Metamask and other wallets pick public and private keys)
No not for a wallet. The best thing you can do is mine your address and you might get lucky if the address you desire is reasonable.
For instance you would like an address that end with 3 0's
You can make a script that will generate addresses until you have a match. But other than that you can't generate an address with a specific value.