By "my OS" are you writing one yourself? What you're really asking "are scheduling algorithm implementations deterministic?"
And the answer to that would be: well it depends on your implementation :-)
Both SJF (shortest-time-first, for those not knowing) and SRTF (shortest-remaining-time- first) can have cases where multiple processes waiting for scheduling have identical weights, and it's down to the scheduler implementation to decide between them.
A naive schedule might always pick the one with the lowest PID, an intelligent scheduler might penalize a process that seems to keep coming back, and somewhere in the middle is the scheduler that tries to do round-robin.
Would it be possible to write a truly deterministic scheduler? Yes, certainly a possibility, but a little bit of randomness in picking the next process (out of a set of random options) to run probably won't hurt, esp. if there are undeclared deadlocks between processes.