Speed test results on 10,000 unique, randomly sorted values on sheet1 and 2000 unique randomly sorted rows of lookup table on sheet2. The GetValues sub took 230 seconds on my machine.
GetValues 1
TEST 50
GetValues2 400
GetValues3 412
LookupCopy 5230

So Fluff's LookupCopy is streaks ahead (13 times quicker than my faster offering) although it needed tweaking to match the lookup table being on sheet2 and the results being placed on Sheet1:
Sub LookupCopy()
Dim InAry As Variant, Oary As Variant
Dim i As Long
   
With Sheets("sheet1")
  Oary = .Range("A1", .Range("A" & Rows.Count).End(xlUp).Offset(, 1))
End With
With Sheets("sheet2")
  InAry = .Range("A1", .Range("A" & Rows.Count).End(xlUp).Offset(, 1))
End With
Set dic = CreateObject("scripting.dictionary")
With dic
  For i = 1 To UBound(InAry)
    .Item(InAry(i, 1)) = InAry(i, 2)
  Next i
  For i = 1 To UBound(Oary)
    Oary(i, 2) = .Item(Oary(i, 1))
  Next i
End With
Sheets("sheet1").Range("B1").Resize(UBound(Oary)).Value = Application.Index(Oary, 0, 2)
End Sub