While @AgentPaper has provided a very nice formula, reality is slightly different.
I used a small python script to calculate the average number of results over 100000 tries.
import random, math
rep = 100000
data =[]
for n in range(1,11):
result = []
for _ in range(rep):
R = sorted([random.randint(1,6) for __ in range(n)])
S = R.count(6)+R.count(5)
R = R[:-S]
while len(R)>1:
# Take highest number in R
x = R.pop(-1)
try:
# Try to find lowest complement to 5.
R.pop(next(R.index(i) for i in R if x+i>=5))
S+=1
except StopIteration:
# No complement found? Put (highest+lowest) back into list.
R.append(x+R.pop(0))
result.append(S)
avg = sum(result)/float(rep)
dev = math.sqrt(sum([(result[i]-avg)**2 for i in range(rep)])/(rep-1))
print('{}: {:.2f}+-{:.2f}'.format(n,avg,dev))
The result is the green line, complete with standard deviation (of the single result, not the mean) the red line shows 2/3 #dice for comparison.

While this seems odd, as AgentPaper is not incorrect in his calculations, I believe the deviation is caused by left-over dice that can't be added up to 5.
As pointed out by Chris, instead of randomly rolling 100000 times, you can iterate over every single possible result. The number of such results is 6^n, which means this method takes quite some time for high n. To do so, you change the above code to use the following:
import random, math
from itertools import product
data =[]
for n in range(1,11):
rep = 6**n
result = []
for r in product([1,2,3,4,5,6],repeat=n):
R = sorted(list(r))
S = R.count(6)+R.count(5)
[...]