>>868
その、配列やり方でいいと思うよ。
ランダムに返却され再利用されるならそれしかない。>>871のようにビットマップで配列は小さくできる。

連続の範囲でとりますとか特徴があれば、それを使って効率的に管理することもできる。