You need to use Set
when assigning a value to an object variable, but your main problem is Range()
doesn't work the way you want it to here.
Set Regcustomer = .Range(Replace("C?,E?,G?,N?,T?", "?", RegCust))
You don't need the sheet to be active to copy the range, nor do you need to activate the range
Dim Regrows As Integer
Dim RegCust As Integer
Dim Regcustomer As Range
With AgedDebtors.Sheets("Regency")
Regrows = .Range("C" & .Rows.Count).End(xlUp).Row
RegCust = Int((Regrows - 45 + 1) * Rnd + 45)
.Range(Replace("C?,E?,G?,N?,T?","?",RegCust)).Copy
End With