I think it would be helpful, here, to offer a basic introduction to the concept of Emergent Behavior. (The reason I think this is useful will be apparent towards the end.)
Emergent Behavior is anything a computer program does, that the programmer did not explicitly program for, but emerges as a consequence of the virtual environment the programmer creates.
This is NOT meant to refer to bugs in the program. But, often times emergent behavior does surprise the programmer. For example, an A.I. application that attempts to solve a problem using a route the programmer never thought of. Or, a web spider that brings back information irrelevant to the subject being scoured for: such as a search for the words "red bats" returning results of red baseball bats and red colored mammalian bats.
Saying that "X can be a product of ID, because a computer programmer is needed to make X happen in a virtual environment" sounds good at first, until you realize something rather odd and strange: Often times, X was NOT explicitly programmed for!!!!. For example, the author of a natural selection simulator might not program his code specifically for parasitism to take place. But, sometimes parasite behavior emerges in the behavior of the virtual entities, anyway.
And, these complex behaviors are often the result of very simplified rules.
Back to the real, natural world: In an environment with as much variety of materials and forces in it, as ours, the chances of natural selection occurring would seem ever more likely. If it can emerge in a simulated world, with only a few simple rules, why can it not happen, without a programmer, in a more complex Universe as ours?