I've been crunching nothing but cpu Fermat lately and seems I'm getting way less "1st" results.
Is this just random or does number of CPU's/Machines/Processor speed/throughput have some deciding factor?
It's whomever returns the task first. Factors that go into it are how fast your computer is, how you have your computer configured, and what your wingman (or wingmen) do.
There is a random component to it in as much as when your computer asks for a task it will have a few hundred to choose from at any given moment, and it may send you a task that it hasn't yet sent to anyone else (thus giving you an advantage), or it may send you a task it's already sent to someone else (giving them the advantage).
For small tasks (PPS-DIV counts as small in this context) by far the most important factor -- more so than how fast your computer is -- is the size of your BOINC cache. If you want to be first, set the cache to 0. Lots of people run with a big cache, and you'll beat them 999 times out of a thousand.
For long tasks, having fast hardware and then making it even faster by using multithreading (if available for that app) is also important.
My lucky number is 75898524288+1