private void PickTwo() { var nextShifts = _schedule.Shifts.Where(s => s.Engineer == null).OrderBy(s => s.Position).Take(2).ToList(); var rnd = new Random(); List <IEngineer> availableEngineers = new List <IEngineer>(); availableEngineers = _workforce.Engineers.Where(e => e.CanWork(nextShifts[0])).ToList(); var firstEngineer = availableEngineers[rnd.Next(availableEngineers.Count)]; _schedule.AddEngineerToShift(nextShifts[0], firstEngineer); availableEngineers = _workforce.Engineers.Where(e => e.CanWork(nextShifts[0])).ToList(); var secondEngineer = availableEngineers[rnd.Next(availableEngineers.Count)]; _schedule.AddEngineerToShift(nextShifts[1], secondEngineer); }