The real problem of "no randomness" is that we don't always have factors we can look at in the engine that represent all the factors we can see in real life. For instance, say a QB throws 3 passes right on target and then sails 3 passes over the target. Why does he pass well one time and miss the other? There could be all sorts of factors, but it could just be that he released the ball at the wrong time. We can attribute that particular action with ratings, like TECH or IQ, but those single numbers don't tell us which play this should happen on versus another play. I can't look at a TECH of 30 and flip the switch on one play versus the other just looking at the all the other numbers. I can't add up numbers and say "complete" vs "incomplete". When I talk about randomness in the engine, I am talking about these sorts of factors that we can only simulate through random checks, like a QB's throwing accuracy.
That doesn't go to say that we aren't looking at other factors within the play to come up with those random checks. A passing play will still look at how much pressure is on the QB, how open his target is, not to mention how deep the target is, but they all essentially boil down to checking to see if the QB throws the ball on target and that's always going to be a percentage chance. I don't think there is anything we can look at in the game that ends up with a "yes/no" condition check, but there are many places we limit the possible outcomes of different actions within the play.
I've tried to put some of these steps in the play in the "anatomy" type posts and even some in the "debug pbp" posts, so if you want to discuss this, I'm very open to doing so. There is a lot going on in the engine and I've been reworking a few parts of it related to this topic based on the initial feedback from beta. The good part about breaking the play down into steps and intermediate results is that you can look at this randomness in "bigger chunks" that allows a little more control on randomness of the net results, but it also makes it very difficult to test every combination of match ups and settings.
I'd also point out that I think a lot of times when people complain about randomness in the game, they are talking about the game results. It certainly seems random when a much higher rated team beats a lower rated team and there isn't anything to point to for the lower rated team that would justify the win. This is different than the randomness within a single play, but can be cause by it as is the case in 2.0. There will be randomness in the 3.0 engine within a single play, but with it being bounded by result sets, the probability that a lower rated team beats a higher rated team will be much lower. So while I'd say there has to be randomness in the engine, that doesn't mean I think there needs to be random upsets within the game.