お世話になります。

データベースはSQLite限定で、ある特定の2000件ほどのテーブルがあるとし、
これにランダムで番号を順に振っていく、『高速でできる』方法を探しています。

id,name,price,index
1,りんご,300,0
2,いちご、150,0
3,すもも,250,0
.
.
.
2000,ぶどう,470,0

上記のようなテーブルがあるとし、一番後ろのデータ(indexのところ)に
1から2000の重複しないユニークなデータを振りたいと思っています。

このようなことは、SQLだけで実現は可能でしょうか。そして、肝心なのは
高速でできるか、ということです。

現在の私の知識では解らないので、コードと併用して下記のように行っています。

1,データをSELECTで ORDER BYRANDOM()で一覧を配列として取得
2,コード上でforで回しながら、配列の順番にindexをUPDATEする(UPDATE xxx SET index = i WHERE id = 配列n番目のid)
3,indexをインクリメントする(i++)
4,2のforを配列の要素数分繰り返す

順序立てて行えば、このパターンで実行できますが、SQL単体で完結しない上に
動作が遅いです。2000行処理するのに1分ほどかかってしまいます。
勿論、PCのスペックなども影響はしますが、行数が多い状態で一行毎UPDATEするのが
時間がかかっていると思います。

これを高速で、できるならばSQLだけで実現することはできますでしょうか。

よろしくお願いいたします。