that's a nested loop:
for each weapon do: for each enemy do: set weapon to enemy
result is:
-For Each EnemyWeapon ordered by EnemyWeapon.UID Ascending
--For Each BadMan ordered by BadMan.
-choose EnemyWeapon 1
--choose BadMan 1
---set EnemyWeapon 1 to BadMan 1
--choose BadMan 2
---set EnemyWeapon 1 to BadMan 2
--choose BadMan 3
---set EnemyWeapon 1 to BadMan 3
-choose EnemyWeapon 2
--choose BadMan 1
---set EnemyWeapon 2 to BadMan 1
--choose BadMan 2
---set EnemyWeapon 2 to BadMan 2
--choose BadMan 3
---set EnemyWeapon 2 to BadMan 3
etc etc.
As you can see, at the end you'll assign every EnemyWeapon to the last BadMan.
You probably should use something other than a nested loop. Look into containers (http://sourceforge.net/apps/mediawiki/construct/index.php?title=Containers), you could set BadMan and EnemyWeapon in a container and you'd be able to do:
-EnemyWeapon: Set position to BadMan.ImagePointX("RightHand"), BadMan.ImagePointY("RightHand")
without even having to specify ordering.