Statistically, given a large enough number, a random distribution of accounts will create mailbox databases with a similar number of users. Once again a random database can be chosen easily within PowerShell.
[PS] C:\>$MailboxDatabases = Get-MailboxDatabase
[PS] C:\>$Random = New-Object Random
[PS] C:\>$TargetDatabase = $MailboxDatabases[$Random.Next(0,$MailboxDatabases.Count-1)]
Pros: This method is quick and easy for load-balancing users across multiple servers.
Cons: With the random method you don’t have control in which database new mailboxes are created. There will be instances when a new mailbox is added to the biggest database in terms of both size and number of users. When/if you add new databases they will be populated at the same rate as existing databases and thus never achieve the same size as the existing databases.
Hopefully this is helpful if you are increasing the size of your Exchange organization or are re-writing your provisioning code for Exchange 2007.