cost=防具に応じた初期値

while(1){

 どこのパーツ(防御、各耐性、スロット、スキル)が伸びるか抽選。乱数1個消費
 
 抽選パーツにどれだけのコストが割り振られるか抽選。乱数1個消費

 if(cost-割り振りコストが0未満になったらループ終了){
  break;
 }

 cost -= 割り振りコスト

 スキルの場合、さらに割り振れコストに応じてどのスキルがつくのか抽選。乱数1個消費
}

カタ1回につき乱数1回消費

だいたいこんな感じなんだろうなぁ