Array.Copyメソッドでは、複写先を複写元と同一の配列にすることが出来ます。 この際、複写先と複写元の一部が重なっていても問題なく複写されます。

Array.Copyメソッドで配列自身へ複写する
Imports System

Class Sample
  Shared Sub Main()
    ' 複写元の配列
    Dim arr() As Integer = {0, 1, 2, 3, 4}

    ' arrの部分配列(インデックス0から3個分)をarr自身のインデックス2以降にコピー
    Array.Copy(arr, 0, arr, 2, 3)

    For Each elem As Integer In arr
      Console.Write("{0}, ", elem)
    Next
    Console.WriteLine()
  End Sub
End Class
実行結果
0, 1, 0, 1, 2, 

このように、Array.Copyメソッドはmemcpyではなくmemmoveに相当する動作となります。