Не знаю, хотите ли вы этого, но думаю, работает
function shuffle(a) {
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function shuffleAfter(a, index = 0) {
const left = a.slice(0, index + 1);
const right = a.slice(index + 1);
return [...left, ...shuffle(right)];
}
console.log(shuffleAfter([0, 1, 2], 0));
console.log(shuffleAfter([0, 1, 2, 3], 1));
console.log(shuffleAfter([0, 1, 2, 3, 4], 2));
console.log(shuffleAfter([0, 1, 2, 3, 4, 5], 3));