Ethereum addresses are hashes of a public key. So to generate one you have to generate a private key first (see: What is the approach to calculate an Ethereum address from a 256 bit private key?) The private key is random but the public key and thus its hash used as the address is not random.
To check an address, and thus know the format, refer to How can I check if an Ethereum address is valid?How can I check if an Ethereum address is valid?