allora.. ho provato con map e in effetti funziona
codice:
valori = [1, 5, 2, 6];

valori_originali = valori.map(x => x);
valori.sort(function(a, b){return b-a});

//(valori ora viene ordinata, valori_originali resta com'era)
ma non ho capito come mai avevo quel problema all'inizio.. il secondo array si "lega" al primo e continua a cambiare al cambiare del primo? (anche aggiungendo un elemento con push, ad esempio, lo prende anche il secondo).

La stessa cosa con le variabili semplici numeriche non avviene
codice:
ab=10;
cd=ab;

ab++;

//(ab è 11, ma cd è rimasto 10)