R には標準でベキ分布を生成する関数がありませんね.以下の関数を定義すると,Zipf-Mandelbrot 分布 に従う乱数を runif と同じ感覚で生成できます. rzipf <- function (n, s=1, q=0, supp=c(1,n)) { x <- supp[1]:supp[2] p <- 1/(x + q)**s y <- sample(x, n, replace=T, prob=p) return(y) } ここで,引数の supp は,確率分布のサポートの下限と上限を持つ配列です.