I have seen the scheduler move a process around, too reduce local warming effects (this happens in time of order a second). It is also free to move it for any other reason, however it will try to keep it on the same core, as this will use the same cache, and prevent a cache flush.
In a year there will be so many opportunities for the core/cpu to change that I would say that the probability is close enough to 100% that makes no difference.
You can restrict the cpu/core that a process runs on. If you do this then it is guaranteed.