Lots of people think that natural selection is a system of random chance. A bunch of random mutations happen and, wham-o, a dinosaur appears. This is a total misunderstanding and is a big reason why there's so many people that think it's "too unlikely" and there must be some kind of purpose, or intelligence, that created life (disregarding the problem that this intelligence must be created by something as well).
I was thinking about this in terms of a card game. Let's say that a bunch of us are playing cards. We don't know the rules, we don't know how many cards or what kinds of cards. We also don't know the rules of the game. We only know one thing... which hand wins. In this game the winner gets to exchange none, some or all of his cards. Over time, enough players will discover which combination of cards will beat and be beaten by other combinations of cards. Of course, in evolution there are many combinations of cards, billions of players playing many billions of hands in a game where the rules change from time to time.
The key point here is that simple combinations of trial and error over long periods of time will create winners... not by chance, but by slow improvement towards an optimal solution - the opposite of chance. The reason I think this is hard to immediately grasp is that we intuitively believe that to improve we need to be conscious of the rules, direction, restrictions and goals. This is not so. As with the card game above, the players do not need to know the rules at all. All they need to know is if they won or lost, if their situation improved or didn't improve. Over enough time, hands will emerge that are consistent winners. In retrospect it will look like those "players" are better... as if they were created or "destined" to win the game.
To go back to a natural example, I often hear detractors of evolution talk about how "half an eye" or "part of a wing" would be useless and so without the complete finished product, these things are useless - thus they must have some purpose. Just like the card game, this is not so. Although 5 Aces is better than 3 2s, 3 2s will still beat 2 2s nicely. Likewise, while half a wing won't let a primative bird-like creature fly, it might help it survive a 20 foot fall. As it gets slightly better wings, it can survive a 30 foot fall, and so on.
I believe this principle, and error in judgement, extends to many other applications. My own area of professional interest, software development, for example. Many times we don't know exactly what we're making, or what the rules for success might be. Trying things and seeing if they are "better" or "worse" is at the heart of what we call "research and development" which is just a risk diminshed way of saying try something and iterate, see if it works and people use it. The difference being that we apply scrutiny and intention to the result; decreasing the iteration time significantly - at least, in theory. Sometimes our intention blinds us, however. Many major discoveries are the result of directly challenging "obvious" things: the earth is flat, the sun moves around the earth, time is linear, and so on. It takes a certain kind of madness to navigate onto a sea without knowing exactly where you are going and playing a kind of insane version of marco-polo in hopes of discovering something... even if it's not exactly what you were looking for. In the end, many pieces of successful software may appear like they were created for precisely what they are used for, but quite frequently they were intended to be something completely different and they just kind of moved in that direction.
I doubt very much that Mark Zukerberg knew what would make Facebook work... he just thought it was this cool thing to try out and probably that it would catch on in some way. They he saw his hand beat a few other hands, exchanged a few cards and saw that those beat still more hands and so on. He, of course, had the advantage of evaluation and scientific testing which nature doesn't necessarily benefit from - at least not at the same iteration level... but the system is the same. In the end Facebook (arguably) looks like a complete, well designer, functional piece of software that delivers satisfaction to many millions of people at high scale and near 100% availability. While some people may say that it's amazing that it was able to achieve this without being designed that way from the ground up; I think the way that it was built is the only way it could achieve this result. It would be impossible to think of the millions of little things that had to happen to make it work - responses to competitors, user feedback, performance, available technology, etc. Trying to figure all that out in advance would have stifled the innovation and prevented Mark et. al. from reacting to what was going on around them. The only way it could possibly work is through keeping and exchanging cards over many millions of hands watching which one wins and which one doesn't...