Uses queuing theory to simulate a queue with various options for queue type, selection function, and preemption strategy