I came across the requirement to copy an ArrayCollection by value instead of by reference. Here is the solutions I used:

private var myCollection:ArrayCollection = new ArrayCollection();

for (var k:Number = 0; k < myCurrentCollection.length; k++) {  
  myCollection.addItem(mx.utils.ObjectUtil.copy(myCurrentCollection[k]));
}