Ruby初心者です.
元のCSVファイル "test.CSV"  A, 100, test   があるとします.
2列目の値を10~0に変更し,計11個のCSVを新たに出力するために,
以下のプログラムを作成しました.

require 'csv'

# CSVを読み込んで二次元配列にする
array = CSV.read('filepath\test.csv')
puts(array.to_s)

# x=ループ処理回数
x =10
while x >= 0 

    array[0][1]= x

    #,ごとに分割して出力
    strAry = array.to_s.split(",")

    #保存するファイル名
    #配列1行目を取得
    y = array[0][0]
    file_name = y.to_s + "+" + x.to_s + '.csv'

    s = strAry.to_csv
    p s
    File.write(file_name, s)

    x = x - 1
end

上記を実行すると,A+0.csv ~A+10.csvまでの計11個のファイルが作成されます.
(出力ファイルに [[" が含まれてしまうなど不完全ですが,ここまでは作成できました.)

これを応用して,元のCSVファイル(3行)
"test2.CSV"  A1, 100, test
         A2, 100, test
         A3, 100, test
がある場合に,各行の2列目に数字を割り当てるファイルを作成したいと考えています,
例えば,6を割り当てる場合,
 A1 A2 A3
  6  0  0
  5  1  0
  5  0  1
  4  2  0
  4  0  2
  4  1  1
     ・
     ・
  1  0  5
  0  1  5
  0  0  6 (3H6= 28通り)

計28個のCSVファイルを作成したいと考えています.

例:1個目の出力ファイル "A1_600.csv"
  内容
 A1, 6, test
 A2, 0, test
 A3, 0, test
例:2個目の出力ファイル "A1_510.csv"
  内容
 A1, 5, test
 A2, 1, test
 A3, 0, test

この場合のコードの書き方をご教示頂ければ幸いです.

追加情報
 
実際にはA1...A6まで用意し,最初の質問文以上の数(5)を割り当てようとしています.
 
A1 A2 A3 A4 A5 A6
5  0  0   0  0  0
4  1  0   0  0  0
4  0  1   0  0  0
       ・
       ・
0  0  0   0  0  4 (6H5= 252通り)

252通りなら,ゴリ押しでもいけるように思います.
今回,私が実行していることは,

"test3.CSV" 

A1, 0, test
A2, 0, test
A3, 0, test
A4, 0, test
A5, 0, test
A6, 0, test
B1, 0, test
B2, 0, test
B3, 0, test
B4, 0, test
B5, 0, test
B6, 0, test
C1, 0, test
C2, 0, test
C3, 0, test
C4, 0, test
D1, 0, test
     ・
     ・
おそらく,合計44行程度

を用意した場合に,
A 6,0,0,0,0,0 (252通り)
B 6,0,0,0,0,0 (252通り)
C 6,0,0,0 (56通り)
D …

252×252×56… 通りのCSVファイルを作成しようとしています.
そうなると,ゴリ押しではおそらく難しく,
別の方法を検討する必要があるかもしれません.

追加情報2

元の管理ファイル"test3.csv" 例
元の管理ファイル"test3.csv" 例

変更したいのは緑色,太枠で囲った部分のみです.
1,2列目のTEST,A はお伝えしやすくするために記載してありますが,
値の変更は行いません.
 
この場合,出力CSVは
タイトル "A500000_B50000_C5000_D5000_E500_F500~.csv"
となるのが理想です.

"A500000_B50000_C5000_D5000_E500_F500~.csv"
"A410000_B50000_C5000_D5000_E500_F500~.csv"
         ・
         ・
         ・
"A000005_B00005_C0005_D0005_E005_F005~.csv"

ファイル数は,252*252*56*56*21*... 出来上がる.という感じです.

元の管理ファイル"test3.csv"内のA,B,C,D~の行数は変更しないため,
地道にループ処理をしていくという方法でも良いように考えます.