Javascript Array.sort() 정렬이 이상하게 되는 이유
요약
JS에서는 배열의 원소를 숫자로 넣었다고해도 각 원소를 문자열로 처리해버린다. 따라서 단순히 Array.sort()를 한다고 했을 때 내부 원소 하나하나를 유니코드로 치환해서 오름차순으로 정렬시키기 때문에 이상한 숫자가 나오는 것이다.
추가로 원본 배열이 정렬되는 것이기 때문에 원본 배열을 따로 저장하거나 깊은 복사를 한 뒤 변수를 따로 선언하여 사용해야 한다

MDN
오름차순, 내림차순 정렬
//오름차순
arr1.sort((a, b) => a - b)
//내림차순
arr1.sort((a,b) => b - a)