клонирую массив ([]+ push)
<...>
Есть ли способы проще
Конечно есть, не надо никакого
push: делайте
arr.slice() или
[...arr].
Т.е., ваш код должен будет выглядеть примерно так:
const result = arr
.slice()
.sort((a, b) => тут сравниваете элементы)
.slice(0, N);