Reading in another post about creating a random list, I ended up with this:
-- get 1000 random numbers from 1 to 1000
set list_length to 1000
-- create the list of indices
set index_list to {}
repeat with i from 1 to list_length
set s to space & (text -4 thru -1 of ("000" & i)) & space
set end of index_list to s
end repeat
set index_string to index_list as string
set s_length to 6
set num_items to 1000
-- create the list of random numbers
set low_num to list_length - num_items + 1
set rand_list to {}
repeat with rand_max from list_length to low_num by -1
-- get a string item
set r to random number from 1 to rand_max with seed 0
set i to (s_length * (r - 1)) + 1
set s_item to text i thru (i + s_length - 1) of index_string
set end of rand_list to (s_item as integer)
-- remove the string item
set tids to AppleScript's text item delimiters
set AppleScript's text item delimiters to s_item
set temp_list to text items of index_string
set AppleScript's text item delimiters to {""}
set index_string to temp_list as string
set AppleScript's text item delimiters to tids
end repeat
{count rand_list, rand_list contains 1, rand_list contains 1000, rand_list}
Does anyone see something that is slowing it down?
Text, unreferenced list indexing, and ˜random number’.
-- get 1000 random numbers from 1 to 1000
set list_length to 1000
-- create the list of indices
set index_list to {}
repeat with i from 1 to list_length
set end of my index_list to i
end repeat
set rand_list to {}
repeat list_length times
set n to some integer of my index_list
set end of my rand_list to n
set item n of my index_list to missing value
end repeat
{count rand_list, rand_list contains 1, rand_list contains 1000, rand_list}