What version of code are you running?
By default vlan pooling assigns based on a hash algorithm. Here are the details from the Campus WLAN VRD
=======================================================================================
"To determine which pool to put the user into, the user MAC address is run through a hash algorithm. The
output of this algorithm places the user into one of the VLANs in the pool and ensures that the user is always
placed into the same pool during a roaming event. As the user associates with the next AP, the address is
hashed. The user is again placed into the same VLAN on the new AP, because the hash algorithm generates the
same output as before. The user can continue to use their existing IP address with no break in their user
sessions.
The hashing algorithm does not place users into the available pool of VLANs in a
round-robin method. Ten clients that join a WLAN are not load balanced equally
among the VLANs. Instead, the distribution is based on the output of the hash. One
VLAN might have more users than the others. For example, consider 150 clients that
join a WLAN with just two VLANs in the pool and with 80 addresses per VLAN available
for clients. Based on the output of the hashing algorithm, 80 clients are placed in one
VLAN and 70 in the other. When the 151st client joins, the output of the hash might
place the client in the VLAN whose scope of 80 addresses has already exhausted. The
result is that the client cannot obtain an IP. To avoid such a rare situation, the network
administrator should design pools with sufficient number of user VLANs and DHCP
scopes to accommodate the user density."
=======================================================================================
Starting with version 6.1.3.0, you can have even assignment of vlan pool among the users.
(config) #vlan-name <vlan-name> pool assignment even
Regards,
--
HT