Ok, now that's out of the way... No, you don't actually need real swapping for insertion sort

(sorry molly

)
You do need the helper variable to take one value out of the array and insert it somewhere else. You need that variable because when inserting the spot where you took it from is going to be overwritten.
Loop at this:
1 2 4 5 3
Now you want 3 to go to the third spot.
So you take out 3 (put it in a helper variable just as in highscore) and get this
1 2 4 5 -
(- is an empty spot)
Now you are going to insert the three at spot 3. What do you do?
You move 4 and 5 from index 3 and 4 to index 4 and 5 like this
(Remember you had trouble because you first tried to put 4 on the spot of 5 and 5 was erased? so you needed to do this backwards)
1 2 - 4 5
and put 3 in the - spot.
Does this look familiar?
It's exactly the same as your highscore problem.
With insertion sort you take each number in the array
and try to insert it into the array BEFORE it.
So the 6th number... put it into a helper variable... now you will try to insert that into the array 1..6 (yes if it doesn't fit in 1..5 you need to put it on 6)
Then you take the 7th number... put it into a helper variable... now you try to insert it into array 1..7.
Etc. etc.
Remember that line 3&4 from
this post for determining in what spot you want a number in your highscore-array?