bitcoind tries to maintain at least one outbound connection to each reachable network. The remaining outbound connections are chosen randomly and depend on the distribution of addresses in the list of known peers.
Use e.g. bitcoin-cli getnodeaddresses 0 ipv4 |jq length to see the number of known IPv4 peers.
Inbounds are not controlled or tried to be balanced.