配列から、3つずつ重複なしでグループわけした値を作りたいのですが、
何をどうして処理したらいいのかわかりません。

アドバイスを頂けませんか。

以下のような感じです。

items = ["A", "A", "A", "B", "B", "C", "F", "F", "F", "G", "H", "I"]

hoge(items)
# => [
  ["A", "B", "C"],
  ["A", "B", "F"],
  ["A", "F", "G"],
  ["F", "H", "I"]
]

組み合わせや順番はこの通りでなくても大丈夫です。

ruby,php,javascriptのいずれかで解説してくださると嬉しいですが、他の言語でも大丈夫です。
よろしくお願いします。