개별 categorySearch의 결과는 항상 고정되어 있습니다.
하지만 categorySearch자체는 네트워크 응답 받은 순서대로 처리되는 비동기 로직이므로
여러 번 호출하면 각 요청마다 응답이 오는 순서는 당연히 다를 수 밖에 없고,
오는 순서대로 저장하게 되면 순서가 뒤섞이게 됩니다.
순서를 고정하려면
우선 async 로직을 sync하는 로직이 필요하실 겁니다.
그리고나서 요청시에 각 리스트의 인덱스를 저장하고
해당 요청에 대한 응답을 기록하는 리스트에서 저장된 인덱스와 같은 위치에 넣어서
동기화(sync) 된 시점에 결과를 사용하는 코드를 짜면 그 순서가 보장 될 거에요.