Software Venture Consulting

FileMaker Pro downloads & Resources
FileMaker Custom Functions
FileMaker Web Viewer Examples
FileMaker Pro & Lasso Consulting
FileMaker Books
FileMaker Articles
FileMaker Error Reference

Free Web Tools
Free FileMaker Tools

Personal Pages

Shopping Cart
Shopping Cart


Free Newsletter


Privacy Policy

FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.


 FileMaker Pro Custom Functions

List  |  Show Random  |  Upload  |  Add This to Your Site


Rate this function:  

  Average rating: 4.1  (22 votes)
  Discuss this Custom Function

Nick Lightbody, Deskspace Systems Limited

To shuffle a string

Sample Input:
Sample Output:

 Then copy & paste into FileMaker Advanced's Edit Custom Function window.


This is a simple tail recursive function used to create a shuffled string for substitution in an encryption process. Typically the process will use a large number of such substitution strings and hence the need to create a large series required this function.

Each cycle moves random character to the end of the string, hence TIMES must be larger than the length of the string.

Note: these functions are not guaranteed or supported by Please contact the individual developer with any questions or problems.

This is my Custom Function and I want to edit it


Parameter names are different from definition.

Why don't you use control to selecting character to move?
1st call you need to select from all chars.
2nd call you need to select from all chars excluding last one, it is already selected before.
and so on.

unix, Japan
January 13, 2016 6:28pm

Thanks - I have amended the parameter names.
When creating a block of keys, we normally shuffle the normal set of characters say a 1000 times, as it is very quick. In practice the quality of the result is no different.
With a longer set of characters, in Japan, perhaps this could be more of an issue?
However, on a random shuffle it is best, I think, to select from all every time, not to exclude the last one, since otherwise it is surely less random?
Cheers, Nick

Nick, Sussex UK
January 13, 2016 6:48pm

"Each cycle moves random character to the end of the string, hence TIMES must be larger than the length of the string."

If you select a random character one at time, move it from the input string to the output string and repeat this until you run out of characters, you will end up with a completely randomized string. There will never be a need to it more times than the length of the input string.

comment, VR
January 16, 2016 7:29am

INPUT: string to shuffle
OUTPUT:call with ""
Let ( [
l = Length ( INPUT ) ;
r = Int ( Random * L ) + 1
] ;
Case ( l < 2 ; OUTPUT & INPUT ; xs ( Replace ( INPUT ; r ; 1 ; "" ) ; OUTPUT & Middle ( INPUT ; r ; 1 ) ) )

unix, Japan
January 20, 2016 7:49pm

Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:

Your Name:
characters left. If you paste in more than 1500 characters, it will be truncated. Discuss the function - advertisements and other useless posts will be deleted.
Answer 8 + 5 =
Search for Custom Functions:

Custom Functions Widget
Download the Custom Function Dashboard Widget for OS X
Keep all the latest Custom Functions right at your fingertips!

Newest Custom Functions:

1. HexUUIDToNum_cf (_uuid)
  (Sat, Jun 16, 1:55pm)
2. httpResponseCode ( responseHeaders )
  (Tue, Jun 12, 10:40pm)
3. FindDuplicateCharacters ( string )
  (Fri, Jun 08, 5:01pm)
4. FieldRepetitionLast ( field ; maxRepetition )
  (Wed, Jun 06, 6:05pm)
5. CountModifiedRecords ( NameTimestampField ; StartTimestamp ; EndTimestamp )
  (Mon, May 28, 8:23am)
6. JSONArrayLength ( JSONArrayStr )
  (Fri, May 25, 7:46am)
7. interpolation (y1; y2; y3; x1; x2; x3; x1y1; x2y1; x1y2; x2y2; rnd)
  (Sat, May 19, 3:55am)
8. @JSONFormatElements ( json )
  (Tue, May 15, 3:31am)

RSS Feed of Custom Functions