If you don't restrict the job, it will pick one of the available
nodes arbitrarily, and it doesn't matter whether it is the master or
a slave/agent. Once the job has run on a particular node, it will
remain there unless that node is unavailable at the time the job
starts. This is done to take advantage of any dependencies or
resources that may already be there from a previous run.
Generally, it is considered better to have jobs run on agents, and
let the master node just run Jenkins.
Regards,
Eric