Your output is: Object { 1="MBA", 2="Masters", 3="Doctoral / PhD", 4 = 'Bachelors', 5 = 'Professional Certifications'}
Expected : Object { 4 = 'MBA',  3="Masters", 2="Doctoral / PhD", 1="Bachelors", 5 = 'Professional Certifications'}
Since your keys are numbers, the browser will display it in order so what you finnaly want to get is (wich is the same but in order):
Object { 1: "Bachelors", 2: "Doctoral / PhD", 3: "Masters", 4: "MBA", 5: "Professional Certifications" }
in your for change the values not the keys (I just commented your line):
var degree_values = ['Bachelors', 'Doctoral / PhD', 'Masters', 'MBA', 'Professional Certifications'];
var degree_indexes = ["4", "3", "2", "1", "5"];
var values = {};
for(var index in degree_values) {
   // values[degree_indexes[index]] = degree_values[index];
   values[degree_indexes[index]] = degree_values[degree_indexes[index]-1]
}
Now you have the desired keys and values in your object. Then to display the properties in the order by degree_indexes, I used a high order function linked in its prototype:
degree_indexes.forEach(elm => {
   console.log(degree_values[elm-1]) /* 4, 3, 2, 1, 0*/
})
Output:
   MBA
   Masters
   Doctoral / PhD
   Bachelors
   Professional Certifications