The new function source code is as follows:
private["_array", "_copy", "_result", "_index"];
_array = [[_this], 0, [], [[]]] call BIS_fnc_param;
_copy = [];
_result = [];
{
_copy push_back _x;
} forEach _array;
for "_i" from 0 to (count _copy-1) do
{
_index = floor(random (count _copy));
_result push_back (_copy select _index);
_copy set [_index, objNull];
_copy = _copy - [objNull];
};
_result;