立石です.

今日の時点のruby-1.9についてですが,

a = [0,1,2]; p a[0,1].clone

や

a = [0,1,2]; a;shift; p a.clone

などが元の[0,1,2]を表示するようです.

a.shift; a.push(0); p a.clone

などとすれば期待した出力[1,2,0]が得られます.
-- 
Takaaki Tateishi <ttate / ttsky.net>