マルコフ連鎖モンテカルロ法でべき乗分布からサンプリングする方法???

vbaのプログラムを、とりあえずはっときます。でもこれあってるのかなー?
続きは、また今度

Sub べき乗分布サンプリング() 'y = 1/x の場合
 Randomize
 x = 1 '初期値
 For i = 1 To 6000
  newx = x + WorksheetFunction.NormSInv(Rnd()) '新しい候補
  If 1 <= newx Then  '1より小さいときは確率0なので却下
   If (1 / newx) / (1 / x) > Rnd() Then '比較してOKなら受理
    x = newx
   End If
  End If
  If i > 3000 Then '初期値を十分忘れてから書き出し
     Cells(i - 3000, 1) = x
  End If
 Next
End Sub