Every single Bitcoin private key is just an integer from 1 to 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 (1.1579209 * 10^77 in decimal) inclusive. This means that technically, all private keys are known by everyone. However, there are so many private keys that finding one that has Bitcoin to spend is basically impossible, especially since private keys are generated randomly. With good random number generators, two people will never be able to generate the same private key simply because the keyspace is so unfathomably massive.
What directory.io does is they just figure out what number private keys the page you are looking at should be showing (as in which integers since a fixed number of keys fit per page) and displays those. They physically cannot have a database which stores all of the private keys and their respective addresses, it would be too computationally intensive to generate (and take way too long to do that) and the hard drive space for such a database is not available, it is too large. Furthermore, the odds of you stumbling upon a private key which has Bitcoin on it is extremely small too.